Overview

Namespaces

  • None
  • Yajra
    • Datatables
      • Contracts
      • Engines
      • Facades
      • Generators
      • Html
      • Processors
      • Services
      • Transformers

Classes

  • Yajra\Datatables\Datatables
  • Yajra\Datatables\DatatablesServiceProvider
  • Yajra\Datatables\Engines\BaseEngine
  • Yajra\Datatables\Engines\CollectionEngine
  • Yajra\Datatables\Engines\EloquentEngine
  • Yajra\Datatables\Engines\QueryBuilderEngine
  • Yajra\Datatables\Facades\Datatables
  • Yajra\Datatables\Generators\DataTablesMakeCommand
  • Yajra\Datatables\Generators\DataTablesScopeCommand
  • Yajra\Datatables\Helper
  • Yajra\Datatables\Html\Builder
  • Yajra\Datatables\Html\Column
  • Yajra\Datatables\Html\Parameters
  • Yajra\Datatables\Processors\DataProcessor
  • Yajra\Datatables\Processors\RowProcessor
  • Yajra\Datatables\Request
  • Yajra\Datatables\Services\DataTable
  • Yajra\Datatables\Transformers\DataTransformer

Interfaces

  • Yajra\Datatables\Contracts\DataTableButtonsContract
  • Yajra\Datatables\Contracts\DataTableContract
  • Yajra\Datatables\Contracts\DataTableEngineContract
  • Yajra\Datatables\Contracts\DataTableScopeContract

Functions

  • config_path
  • public_path
  • Overview
  • Namespace
  • Class
  1: <?php
  2: 
  3: namespace Yajra\Datatables;
  4: 
  5: use Collective\Html\HtmlServiceProvider;
  6: use Illuminate\Support\ServiceProvider;
  7: use League\Fractal\Manager;
  8: use League\Fractal\Serializer\DataArraySerializer;
  9: use Maatwebsite\Excel\ExcelServiceProvider;
 10: use Yajra\Datatables\Generators\DataTablesMakeCommand;
 11: use Yajra\Datatables\Generators\DataTablesScopeCommand;
 12: 
 13: /**
 14:  * Class DatatablesServiceProvider.
 15:  *
 16:  * @package Yajra\Datatables
 17:  * @author  Arjay Angeles <aqangeles@gmail.com>
 18:  */
 19: class DatatablesServiceProvider extends ServiceProvider
 20: {
 21:     /**
 22:      * Indicates if loading of the provider is deferred.
 23:      *
 24:      * @var bool
 25:      */
 26:     protected $defer = false;
 27: 
 28:     /**
 29:      * Bootstrap the application events.
 30:      *
 31:      * @return void
 32:      */
 33:     public function boot()
 34:     {
 35:         $this->loadViewsFrom(__DIR__ . '/resources/views', 'datatables');
 36: 
 37:         $this->publishAssets();
 38: 
 39:         $this->registerCommands();
 40:     }
 41: 
 42:     /**
 43:      * Publish datatables assets.
 44:      */
 45:     protected function publishAssets()
 46:     {
 47:         $this->publishes([
 48:             __DIR__ . '/config/config.php' => config_path('datatables.php'),
 49:         ], 'datatables');
 50: 
 51:         $this->publishes([
 52:             __DIR__ . '/resources/assets/buttons.server-side.js' => public_path('vendor/datatables/buttons.server-side.js'),
 53:         ], 'datatables');
 54: 
 55:         $this->publishes([
 56:             __DIR__ . '/resources/views' => base_path('/resources/views/vendor/datatables'),
 57:         ], 'datatables');
 58:     }
 59: 
 60:     /**
 61:      * Register datatables commands.
 62:      */
 63:     protected function registerCommands()
 64:     {
 65:         $this->commands(DataTablesMakeCommand::class);
 66:         $this->commands(DataTablesScopeCommand::class);
 67:     }
 68: 
 69:     /**
 70:      * Register the service provider.
 71:      *
 72:      * @return void
 73:      */
 74:     public function register()
 75:     {
 76:         if ($this->isLumen()) {
 77:             require_once 'fallback.php';
 78:         }
 79: 
 80:         $this->registerRequiredProviders();
 81: 
 82:         $this->app->singleton('datatables', function () {
 83:             return new Datatables($this->app->make(Request::class));
 84:         });
 85: 
 86:         $this->app->singleton('datatables.fractal', function () {
 87:             $fractal = new Manager;
 88:             $config  = $this->app['config'];
 89:             $request = $this->app['request'];
 90: 
 91:             $includesKey = $config->get('datatables.fractal.includes', 'include');
 92:             if ($request->get($includesKey)) {
 93:                 $fractal->parseIncludes($request->get($includesKey));
 94:             }
 95: 
 96:             $serializer = $config->get('datatables.fractal.serializer', DataArraySerializer::class);
 97:             $fractal->setSerializer(new $serializer);
 98: 
 99:             return $fractal;
100:         });
101: 
102:         $this->registerAliases();
103:     }
104: 
105:     /**
106:      * Check if app uses Lumen.
107:      *
108:      * @return bool
109:      */
110:     protected function isLumen()
111:     {
112:         return str_contains($this->app->version(), 'Lumen');
113:     }
114: 
115:     /**
116:      * Register 3rd party providers.
117:      */
118:     protected function registerRequiredProviders()
119:     {
120:         $this->app->register(HtmlServiceProvider::class);
121:         $this->app->register(ExcelServiceProvider::class);
122:     }
123: 
124:     /**
125:      * Create aliases for the dependency.
126:      */
127:     protected function registerAliases()
128:     {
129:         if (class_exists('Illuminate\Foundation\AliasLoader')) {
130:             $loader = \Illuminate\Foundation\AliasLoader::getInstance();
131:             $loader->alias('Datatables', \Yajra\Datatables\Facades\Datatables::class);
132:         }
133:     }
134: 
135:     /**
136:      * Get the services provided by the provider.
137:      *
138:      * @return string[]
139:      */
140:     public function provides()
141:     {
142:         return ['datatables'];
143:     }
144: }
145: 
API documentation generated by ApiGen