/** * Register the service provider. */ 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; }); $arr = (include __DIR__ . '/../../config/administrator.php'); //set up the shared instances $this->app['admin_config_factory'] = $this->app->share(function ($app) use($arr) { return new ConfigFactory($app->make('admin_validator'), LValidator::make(array(), array()), $arr); }); $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) use($arr) { $dataTable = new DataTable($app->make('itemconfig'), $app->make('admin_column_factory'), $app->make('admin_field_factory')); $dataTable->setRowsPerPage($app->make('session.store'), $arr['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')); }); }
/** * Register the service provider. * * @return void */ public function register() { //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::get('administrator::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::get('administrator::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')); }); }
/** * Bootstrap the application events. * * @return void */ public function boot() { $this->package('frozennode/administrator'); //set the locale $this->setLocale(); //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'), Config::get('administrator::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'), Config::get('administrator::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')); }); //include our filters, view composers, and routes include __DIR__.'/../../filters.php'; include __DIR__.'/../../viewComposers.php'; include __DIR__.'/../../routes.php'; $this->app['events']->fire('administrator.ready'); }