File manager - Edit - /home/linknsbh/cecil-hotel.net/vendor/botble/platform/setting/src/Providers/SettingServiceProvider.php
Back
<?php namespace Botble\Setting\Providers; use Botble\Base\Events\PanelSectionsRendering; use Botble\Base\Facades\DashboardMenu; use Botble\Base\Facades\EmailHandler; use Botble\Base\Facades\PanelSectionManager; use Botble\Base\PanelSections\PanelSectionItem; use Botble\Base\PanelSections\System\SystemPanelSection; use Botble\Base\Supports\ServiceProvider; use Botble\Base\Traits\LoadAndPublishDataTrait; use Botble\Setting\Commands\CronJobTestCommand; use Botble\Setting\Facades\Setting; use Botble\Setting\Listeners\PushDashboardMenuToOtherSectionPanel; use Botble\Setting\Models\Setting as SettingModel; use Botble\Setting\PanelSections\SettingCommonPanelSection; use Botble\Setting\PanelSections\SettingOthersPanelSection; use Botble\Setting\Repositories\Eloquent\SettingRepository; use Botble\Setting\Repositories\Interfaces\SettingInterface; use Botble\Setting\Supports\DatabaseSettingStore; use Botble\Setting\Supports\SettingStore; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\AliasLoader; use Illuminate\Routing\Events\RouteMatched; class SettingServiceProvider extends ServiceProvider { use LoadAndPublishDataTrait; protected bool $defer = true; public function register(): void { $this ->setNamespace('core/setting') ->loadAndPublishConfigurations(['general']); $this->app->singleton(SettingStore::class, function () { return new DatabaseSettingStore(); }); $this->app->bind(SettingInterface::class, function () { return new SettingRepository(new SettingModel()); }); if (! class_exists('Setting')) { AliasLoader::getInstance()->alias('Setting', Setting::class); } $this->loadHelpers(); } public function boot(): void { $this ->loadRoutes() ->loadAndPublishViews() ->loadAnonymousComponents() ->loadAndPublishTranslations() ->loadAndPublishConfigurations(['permissions', 'email']) ->loadMigrations() ->publishAssets(); DashboardMenu::default()->beforeRetrieving(function () { DashboardMenu::make() ->registerItem([ 'id' => 'cms-core-settings', 'priority' => 9999, 'name' => 'core/setting::setting.title', 'icon' => 'ti ti-settings', 'route' => 'settings.index', ]); }); $events = $this->app['events']; $events->listen(RouteMatched::class, function () { EmailHandler::addTemplateSettings('base', config('core.setting.email', []), 'core'); }); PanelSectionManager::default() ->beforeRendering(function () { PanelSectionManager::setGroupName(trans('core/setting::setting.title')) ->register([ SettingCommonPanelSection::class, SettingOthersPanelSection::class, ]); }); PanelSectionManager::group('system')->beforeRendering(function () { PanelSectionManager::registerItem( SystemPanelSection::class, fn () => PanelSectionItem::make('cronjob') ->setTitle(trans('core/setting::setting.cronjob.name')) ->withIcon('ti ti-calendar-event') ->withDescription(trans('core/setting::setting.cronjob.description')) ->withPriority(50) ->withRoute('settings.cronjob') ); }); $events->listen(PanelSectionsRendering::class, PushDashboardMenuToOtherSectionPanel::class); if ($this->app->runningInConsole()) { $this->commands([ CronJobTestCommand::class, ]); $this->app->afterResolving(Schedule::class, function (Schedule $schedule) { rescue(function () use ($schedule) { $schedule ->command(CronJobTestCommand::class) ->everyMinute(); }); }); } } public function provides(): array { return [ SettingStore::class, ]; } }
| ver. 1.4 |
Github
|
.
| PHP 8.2.31 | Generation time: 0.49 |
proxy
|
phpinfo
|
Settings