diff --git a/resources/stubs/template/resources/views/layouts/app.blade.php b/resources/stubs/template/resources/views/layouts/app.blade.php index 6bf3c15..7886367 100755 --- a/resources/stubs/template/resources/views/layouts/app.blade.php +++ b/resources/stubs/template/resources/views/layouts/app.blade.php @@ -16,6 +16,7 @@ + @livewireStyles @@ -37,6 +38,8 @@ @stack('modals') + + @livewireScripts - \ No newline at end of file + diff --git a/resources/stubs/template/resources/views/layouts/guest.blade.php b/resources/stubs/template/resources/views/layouts/guest.blade.php index 9c2d9de..f0d7246 100755 --- a/resources/stubs/template/resources/views/layouts/guest.blade.php +++ b/resources/stubs/template/resources/views/layouts/guest.blade.php @@ -16,12 +16,16 @@ + + @livewireStyles
{{ $slot }}
+ + @livewireScripts - \ No newline at end of file + diff --git a/src/Theme.php b/src/Theme.php index 8540c9a..189c972 100644 --- a/src/Theme.php +++ b/src/Theme.php @@ -13,6 +13,7 @@ use Codions\ThemesManager\Traits\HasProviders; use Codions\ThemesManager\Traits\HasTranslations; use Codions\ThemesManager\Traits\HasViews; +use Exception; use Illuminate\Filesystem\Filesystem; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Log; @@ -208,6 +209,21 @@ public function getNamespace(string $path = null): string return "Themes\\$vendor\\$name\\" . $path; } + public function getInstance(string $path) + { + if (! $this->enabled()) { + $this->requireClass($path); + } + + $class = $this->getNamespace($path); + + if (! class_exists($class)) { + throw new Exception("Class not found: {$class}"); + } + + return new $class; + } + /** * Check if has parent Theme. */ diff --git a/src/Traits/Autoloader.php b/src/Traits/Autoloader.php index 1c8a670..a06e57e 100644 --- a/src/Traits/Autoloader.php +++ b/src/Traits/Autoloader.php @@ -13,15 +13,20 @@ trait Autoloader public function registerAutoloader() { spl_autoload_register(function ($class) { - $class = str_replace($this->getNamespace(), '', $class); + $this->requireClass($class); + }); + } + + protected function requireClass($class) + { + $class = str_replace($this->getNamespace(), '', $class); - $class = str_replace('\\', DIRECTORY_SEPARATOR, $class); - $file = $this->getPath("src/{$class}.php"); + $class = str_replace('\\', DIRECTORY_SEPARATOR, $class); + $file = $this->getPath("src/{$class}.php"); - if (file_exists($file)) { - require_once $file; - } - }); + if (file_exists($file)) { + require_once $file; + } } protected function registerLivewireComponents()