Arrilot\Widgets\ServiceProvider::boot PHP Method

boot() public method

Bootstrap the application events.
public boot ( ) : void
return void
    public function boot()
    {
        $this->publishes([__DIR__ . '/config/config.php' => config_path('laravel-widgets.php')]);
        $routeConfig = ['namespace' => 'Arrilot\\Widgets\\Controllers', 'prefix' => 'arrilot', 'middleware' => $this->app['config']->get('laravel-widgets.route_middleware', [])];
        if (!$this->app->routesAreCached()) {
            $this->app['router']->group($routeConfig, function ($router) {
                $router->get('load-widget', 'WidgetController@showWidget');
            });
        }
        $omitParenthesis = version_compare($this->app->version(), '5.3', '<');
        Blade::directive('widget', function ($expression) use($omitParenthesis) {
            $expression = $omitParenthesis ? $expression : "({$expression})";
            return "<?php echo app('arrilot.widget')->run{$expression}; ?>";
        });
        Blade::directive('asyncWidget', function ($expression) use($omitParenthesis) {
            $expression = $omitParenthesis ? $expression : "({$expression})";
            return "<?php echo app('arrilot.async-widget')->run{$expression}; ?>";
        });
        Blade::directive('widgetGroup', function ($expression) use($omitParenthesis) {
            $expression = $omitParenthesis ? $expression : "({$expression})";
            return "<?php echo app('arrilot.widget-group-collection')->group{$expression}->display(); ?>";
        });
    }

Usage Example

 /**
  * Register two additional blade directives
  *
  * @return nil|null
  */
 public function boot()
 {
     parent::boot();
     $this->registerBladeDirective('widget-begin', '$1<?php echo app("arrilot.widget")->begin$2; ?>');
     $this->registerBladeDirective('widget-end', '$1<?php echo app("arrilot.widget")->endw$2; ?>');
 }