src/DataTablesServiceProvider.php
public function boot()
    {
        $engines = config('datatables.engines');
        foreach ($engines as $engine => $class) {
            $engine = camel_case($engine);

            if (! method_exists(DataTables::class, $engine) && ! DataTables::hasMacro($engine)) {
                DataTables::macro($engine, function () use ($class) {
                    if (! call_user_func_array([$class, 'canCreate'], func_get_args())) {
                        throw new \InvalidArgumentException();
                    }

                    return call_user_func_array([$class, 'create'], func_get_args());
                });
            }
        }
    }
public function boot()
    {
        $engines = config('datatables.engines');
        foreach ($engines as $engine => $class) {
            $engine = camel_case($engine);

            if (! method_exists(DataTables::class, $engine) && ! DataTables::hasMacro($engine)) {
                DataTables::macro($engine, function () use ($class) {
                    if (! call_user_func_array([$class, 'canCreate'], func_get_args())) {
                        throw new \InvalidArgumentException();
                    }

                    return call_user_func_array([$class, 'create'], func_get_args());
                });
            }
        }
    }
public function boot ( ) { $ engines = config ( 'datatables.engines' ) ; foreach ( $ engines as $ engine => $ class ) { $ engine = camel_case ( $ engine ) ; if ( ! method_exists ( DataTables :: class , $ engine ) && ! DataTables :: hasMacro ( $ engine ) ) { DataTables :: macro ( $ engine , function ( ) use ( $ class ) { if ( ! call_user_func_array ( [ $ class , 'canCreate' ] , func_get_args ( ) ) ) { throw new \ InvalidArgumentException ( ) ; } return call_user_func_array ( [ $ class , 'create' ] , func_get_args ( ) ) ; } ) ; } } }
Boot the instance, add macros for datatable engines.

@return void
Boot the instance add macros for datatable engines .