tag syntax + * layouts:: Livewire layouts (->layout('layouts::app')) * front:: Front-end components () * errors:: Error pages (404, 500, 503) */ class Boot extends ServiceProvider { public function register(): void { // } public function boot(): void { $blade = __DIR__.'/View/Blade'; // Add to view paths for Livewire's layout resolution // Makes ->layout('layouts.app') find layouts/app.blade.php $this->app['view']->addLocation($blade); // Register core:: namespace ( + ) $this->loadViewsFrom($blade, 'core'); Blade::anonymousComponentPath($blade, 'core'); // Register layouts:: namespace $this->loadViewsFrom($blade.'/layouts', 'layouts'); Blade::anonymousComponentPath($blade.'/layouts', 'layouts'); // Register front:: namespace for front-end components Blade::anonymousComponentPath($blade.'/components', 'front'); // Register error views $this->loadViewsFrom($blade.'/errors', 'errors'); // Register tag compiler (like ) $this->bootTagCompiler(); } /** * Register the custom tag compiler. */ protected function bootTagCompiler(): void { $compiler = new CoreTagCompiler( app('blade.compiler')->getClassComponentAliases(), app('blade.compiler')->getClassComponentNamespaces(), app('blade.compiler') ); app('blade.compiler')->precompiler(function (string $value) use ($compiler) { return $compiler->compile($value); }); } }