radfusion/app/Providers/AppServiceProvider.php
2025-01-14 13:21:41 +06:00

67 lines
1.9 KiB
PHP

<?php
namespace App\Providers;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Vite;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
$this->configureModels();
Paginator::useBootstrapFive();
Vite::useStyleTagAttributes(static function (?string $src, string $url, ?array $chunk, ?array $manifest) {
if ($src !== null) {
return [
'class' => preg_match("/(resources\/assets\/vendor\/scss\/(rtl\/)?core)-?.*/i", $src) ? 'template-customizer-core-css' :
(preg_match("/(resources\/assets\/vendor\/scss\/(rtl\/)?theme)-?.*/i", $src) ? 'template-customizer-theme-css' : ''),
];
}
return [];
});
// $this->registerCustomBladeDirectives();
}
private function registerCustomBladeDirectives(): void
{
Blade::directive('loop', static fn ($expression) => "<?php foreach ({$expression}): ?>");
Blade::directive('endloop', static fn ($expression) => '<?php endforeach; ?>');
Blade::directive('require', static function ($partial) {
$name = str_replace(['\'', '"'], '', trim($partial));
$path = app('view.finder')->find($name);
$view = File::get($path);
return Blade::compileString($view);
});
Blade::directive('partial', static function ($partial, $params = []) {
echo view($partial, $params)->render();
});
}
private function configureModels(): void
{
Model::shouldBeStrict(! $this->app->isProduction());
}
}