/** * Register the Blade service. * * @param Silex\Application $app **/ public function register(Application $app) { $app['blade.filesystem'] = $app->share(function () { return new Filesystem(); }); $app['blade.compiler'] = $app->share(function () use($app) { return new BladeCompiler($app['blade.filesystem'], $app['blade.settings']['cache']); }); $app['blade.compiler_engine'] = $app->share(function () use($app) { return new CompilerEngine($app['blade.compiler'], $app['blade.filesystem']); }); $app['blade.resolver'] = $app->share(function () { return new EngineResolver(); }); $app['blade.resolver']->register('blade', function () use($app) { return $app['blade.compiler_engine']; }); $app['blade.finder'] = $app->share(function () use($app) { return new FileViewFinder($app['blade.filesystem'], $app['blade.settings']['views']); }); $app['blade.dispatcher'] = $app->share(function () { return new Dispatcher(); }); $app['blade'] = $app->share(function ($app) { $blade = new Environment($app['blade.resolver'], $app['blade.finder'], $app['blade.dispatcher']); $blade->share('app', $app); return $blade; }); }
/** * Add a piece of shared data to the environment. * * @param string $key * @param mixed $value * @return void */ public function share($key, $value = null) { if (!is_array($key)) { return parent::share($key, $this->makePresentable($value)); } return parent::share($this->makePresentable($key)); }
/** * Register Environment * * @return void */ public function registerEnvironment() { $this->app['view'] = $this->app->share(function ($app) { $resolver = $app['view.engine.resolver']; $resource = 'view.'; $engine = $app['config']->get($resource . 'engine'); if (empty($engine)) { $resource = 'PhpTalView::'; } $finder = new FileViewFinder($app['files'], array()); $finder->addLocation($app['config']->get($resource . 'templateRepository')); $finder->addExtension($app['config']->get($resource . 'extension')); $env = new Environment($resolver, $finder, $app['events']); $env->addExtension($app['config']->get($resource . 'extension'), 'phptal'); $env->setContainer($app); $env->share('app', $app); return $env; }); }
/** * Register the view environment. * * @return void */ public function registerEnvironment() { $this->app->bindShared('view', function ($app) { // Next we need to grab the engine resolver instance that will be used by the // environment. The resolver will be used by an environment to get each of // the various engine implementations such as plain PHP or Blade engine. $resolver = $app['view.engine.resolver']; $finder = $app['view.finder']; $env = new Environment($resolver, $finder, $app['events']); // We will also set the container instance on this view environment since the // view composers may be classes registered in the container, which allows // for great testable, flexible composers for the application developer. $env->setContainer($app); $env->share('app', $app); return $env; }); }
/** * Add a piece of shared data to the environment. * * @param string $key * @param mixed $value * @return void * @static */ public static function share($key, $value = null) { \Illuminate\View\Environment::share($key, $value); }
/** * Method to share data across all views * * @param string $key * @param mixed $value * @return \iDocrea8\Theme\Theme */ public function share($key, $value) { $this->view->share($key, $value); return $this; }