![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/medad.corals.io/vendor/yajra/laravel-datatables-fractal/src/ |
<?php namespace Yajra\DataTables; use League\Fractal\Manager; use Illuminate\Support\ServiceProvider; use League\Fractal\Serializer\DataArraySerializer; use Yajra\DataTables\Commands\TransformerMakeCommand; use Yajra\DataTables\Transformers\FractalTransformer; class FractalServiceProvider extends ServiceProvider { /** * Indicates if loading of the provider is deferred. * * @var bool */ protected $defer = false; /** * Bootstrap the application events. * * @return void */ public function boot() { $this->mergeConfigFrom(__DIR__ . '/../config/datatables-fractal.php', 'datatables-fractal'); $this->publishAssets(); $this->registerMacro(); } /** * Publish datatables assets. * * @return void */ protected function publishAssets() { $this->publishes( [ __DIR__ . '/../config/datatables-fractal.php' => config_path('datatables-fractal.php'), ], 'datatables-fractal' ); } /** * Register DataTables macro methods. * * @return void */ protected function registerMacro() { DataTableAbstract::macro( 'setTransformer', function ($transformer) { $this->transformer = [$transformer]; return $this; } ); DataTableAbstract::macro( 'addTransformer', function ($transformer) { $this->transformer[] = $transformer; return $this; } ); DataTableAbstract::macro( 'setSerializer', function ($serializer) { $this->serializer = $serializer; return $this; } ); } /** * Register the service provider. * * @return void */ public function register() { $this->app->singleton( 'datatables.fractal', function () { $fractal = new Manager; $config = $this->app['config']; $request = $this->app['request']; $includesKey = $config->get('datatables-fractal.includes', 'include'); if ($request->get($includesKey)) { $fractal->parseIncludes($request->get($includesKey)); } $serializer = $config->get('datatables-fractal.serializer', DataArraySerializer::class); $fractal->setSerializer(new $serializer); return $fractal; } ); $this->app->singleton( 'datatables.transformer', function () { return new FractalTransformer($this->app->make('datatables.fractal')); } ); $this->commands( [ TransformerMakeCommand::class, ] ); } /** * Get the services provided by the provider. * * @return array */ public function provides() { return [ 'datatables.fractal', 'datatables.transformer', ]; } }