Frozennode\Administrator\AdministratorServiceProvider::register PHP Method

register() public method

Register the service provider.
public register ( )
    public function register()
    {
        //include our view composers, and routes to avoid issues with catch-all routes defined by users
        include __DIR__ . '/../../viewComposers.php';
        include __DIR__ . '/../../routes.php';
        //the admin validator
        $this->app['admin_validator'] = $this->app->share(function ($app) {
            //get the original validator class so we can set it back after creating our own
            $originalValidator = LValidator::make(array(), array());
            $originalValidatorClass = get_class($originalValidator);
            //temporarily override the core resolver
            LValidator::resolver(function ($translator, $data, $rules, $messages) use($app) {
                $validator = new Validator($translator, $data, $rules, $messages);
                $validator->setUrlInstance($app->make('url'));
                return $validator;
            });
            //grab our validator instance
            $validator = LValidator::make(array(), array());
            //set the validator resolver back to the original validator
            LValidator::resolver(function ($translator, $data, $rules, $messages) use($originalValidatorClass) {
                return new $originalValidatorClass($translator, $data, $rules, $messages);
            });
            //return our validator instance
            return $validator;
        });
        //set up the shared instances
        $this->app['admin_config_factory'] = $this->app->share(function ($app) {
            return new ConfigFactory($app->make('admin_validator'), LValidator::make(array(), array()), config('administrator'));
        });
        $this->app['admin_field_factory'] = $this->app->share(function ($app) {
            return new FieldFactory($app->make('admin_validator'), $app->make('itemconfig'), $app->make('db'));
        });
        $this->app['admin_datatable'] = $this->app->share(function ($app) {
            $dataTable = new DataTable($app->make('itemconfig'), $app->make('admin_column_factory'), $app->make('admin_field_factory'));
            $dataTable->setRowsPerPage($app->make('session.store'), config('administrator.global_rows_per_page'));
            return $dataTable;
        });
        $this->app['admin_column_factory'] = $this->app->share(function ($app) {
            return new ColumnFactory($app->make('admin_validator'), $app->make('itemconfig'), $app->make('db'));
        });
        $this->app['admin_action_factory'] = $this->app->share(function ($app) {
            return new ActionFactory($app->make('admin_validator'), $app->make('itemconfig'), $app->make('db'));
        });
        $this->app['admin_menu'] = $this->app->share(function ($app) {
            return new Menu($app->make('config'), $app->make('admin_config_factory'));
        });
    }
AdministratorServiceProvider