61 lines
1.7 KiB
PHP
61 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Providers;
|
|
|
|
use Illuminate\Support\ServiceProvider;
|
|
|
|
/**
|
|
* 初始化所有singleton class 的 instance
|
|
*
|
|
* Class SingletonServiceProvider
|
|
* @package App\Providers
|
|
*/
|
|
class SingletonServiceProvider extends ServiceProvider
|
|
{
|
|
/**
|
|
* Register services.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function register()
|
|
{
|
|
// Services
|
|
$this->app->alias(\App\Services\SiteStateService::class, 'SiteState');
|
|
$this->app->singleton(\App\Services\SiteStateService::class, function($app){
|
|
return new \App\Services\SiteStateService;
|
|
});
|
|
|
|
$this->app->alias(\App\Services\Admin\MainMenuItemService::class, 'AdminMenu');
|
|
$this->app->singleton(\App\Services\Admin\MainMenuItemService::class, function($app){
|
|
return new \App\Services\Admin\MainMenuItemService;
|
|
});
|
|
|
|
//Repositories
|
|
$this->app->alias(\App\Repositories\OptionRepository::class, 'Option');
|
|
$this->app->singleton(\App\Repositories\OptionRepository::class, function($app){
|
|
return new \App\Repositories\OptionRepository($app->make(\App\Option::class));
|
|
});
|
|
|
|
// Presenters
|
|
$this->app->alias(\App\Presenters\Html\HtmlPresenter::class, 'Html');
|
|
$this->app->singleton(\App\Presenters\Html\HtmlPresenter::class, function($app){
|
|
return new \App\Presenters\Html\HtmlPresenter;
|
|
});
|
|
|
|
$this->app->alias(\App\Presenters\SiteNamePresenter::class, 'SiteName');
|
|
$this->app->singleton(\App\Presenters\SiteNamePresenter::class, function($app){
|
|
return new \App\Presenters\SiteNamePresenter;
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Bootstrap services.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function boot()
|
|
{
|
|
//
|
|
}
|
|
}
|