Skip to content

Commit 9ac055e

Browse files
Merge pull request #8 from codions/develop
Added helper method to obtain an instance of a class present in the current theme
2 parents eb833e1 + 6e0586b commit 9ac055e

File tree

4 files changed

+37
-9
lines changed

4 files changed

+37
-9
lines changed

resources/stubs/template/resources/views/layouts/app.blade.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
<!-- Scripts -->
1818
<script src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.7.0/dist/alpine.js" defer></script>
19+
@livewireStyles
1920
</head>
2021

2122
<body class="font-sans antialiased">
@@ -37,6 +38,8 @@
3738
</div>
3839

3940
@stack('modals')
41+
42+
@livewireScripts
4043
</body>
4144

42-
</html>
45+
</html>

resources/stubs/template/resources/views/layouts/guest.blade.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,16 @@
1616

1717
<!-- Scripts -->
1818
<script src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.7.0/dist/alpine.js" defer></script>
19+
20+
@livewireStyles
1921
</head>
2022

2123
<body>
2224
<div class="font-sans text-gray-900 antialiased">
2325
{{ $slot }}
2426
</div>
27+
28+
@livewireScripts
2529
</body>
2630

27-
</html>
31+
</html>

src/Theme.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Codions\ThemesManager\Traits\HasProviders;
1414
use Codions\ThemesManager\Traits\HasTranslations;
1515
use Codions\ThemesManager\Traits\HasViews;
16+
use Exception;
1617
use Illuminate\Filesystem\Filesystem;
1718
use Illuminate\Support\Facades\Config;
1819
use Illuminate\Support\Facades\Log;
@@ -208,6 +209,21 @@ public function getNamespace(string $path = null): string
208209
return "Themes\\$vendor\\$name\\" . $path;
209210
}
210211

212+
public function getInstance(string $path)
213+
{
214+
if (! $this->enabled()) {
215+
$this->requireClass($path);
216+
}
217+
218+
$class = $this->getNamespace($path);
219+
220+
if (! class_exists($class)) {
221+
throw new Exception("Class not found: {$class}");
222+
}
223+
224+
return new $class;
225+
}
226+
211227
/**
212228
* Check if has parent Theme.
213229
*/

src/Traits/Autoloader.php

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,20 @@ trait Autoloader
1313
public function registerAutoloader()
1414
{
1515
spl_autoload_register(function ($class) {
16-
$class = str_replace($this->getNamespace(), '', $class);
16+
$this->requireClass($class);
17+
});
18+
}
19+
20+
protected function requireClass($class)
21+
{
22+
$class = str_replace($this->getNamespace(), '', $class);
1723

18-
$class = str_replace('\\', DIRECTORY_SEPARATOR, $class);
19-
$file = $this->getPath("src/{$class}.php");
24+
$class = str_replace('\\', DIRECTORY_SEPARATOR, $class);
25+
$file = $this->getPath("src/{$class}.php");
2026

21-
if (file_exists($file)) {
22-
require_once $file;
23-
}
24-
});
27+
if (file_exists($file)) {
28+
require_once $file;
29+
}
2530
}
2631

2732
protected function registerLivewireComponents()

0 commit comments

Comments
 (0)