/** * Set up the various view engines. * * @param Container $app */ public function boot(Container $app) { $app->afterResolving(function (Factory $factory, $app) { $factory->addExtension('php', 'php', function () { return new PhpEngine(); }); $factory->addExtension('blade.php', 'blade', function () use($app) { return new CompilerEngine($app->make(BladeCompiler::class)); }); $factory->addExtension('md', 'markdown', function () use($app) { return new CompilerEngine($app->make(Markdown::class)); }); }); $app->when(BladeCompiler::class)->needs('$cachePath')->give(vfsStream::setup('root/.blade')->url()); }
/** * Run the build command. * * @return bool */ protected function build() { $container = new Container(); $container->singleton('files', Filesystem::class); $container->bind(Factory::class, function ($app) { return new Factory($app->make(EngineResolver::class), new FileViewFinder($app['files'], ['test/source']), new Dispatcher($app)); }); $container->afterResolving(function (Factory $factory, $app) { $factory->addExtension('php', 'php', function () { return new PhpEngine(); }); $factory->addExtension('blade.php', 'blade', function () use($app) { return new CompilerEngine(new BladeCompiler($app['files'], vfsStream::url('test/.cache'))); }); }); $builder = new Builder($container, [Skip::class . ':_*', Compile::class]); return $builder->build(vfsStream::url('test/source'), vfsStream::url('test/build')); }
/** * Register the "ValidatesWhenResolved" container hook. * * @return void */ protected function registerValidationResolverHook() { $this->container->afterResolving(function (ValidatesWhenResolved $resolved) { $resolved->validate(); }); }
/** * Set up required container bindings. * * @param Container $app */ public function boot(Container $app) { $app->afterResolving(function (BladeCompiler $compiler, $app) { $this->allowHighlightTag($compiler); }); }