cms/app/Providers/SingletonServiceProvider.php

58 lines
1.5 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;
});
}
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
//
}
}