CMS參考了Laravel的設計思想,使用了一個全局App容器(application/common/App.php)。
通過定義Provider,然后在App里注冊,即可全局使用。
**登錄存儲**
* 定義
~~~
$pimple['login'] = function ($pimple) {
$driver = Config::get('login_driver') ? Config::get('login_driver') : LoginFactory::TYPE_SESSION;
return LoginFactory::make($driver);
};
~~~
* 使用
~~~
use app\common\App;
$login = App::getSingleton()->login;
~~~
**文件存儲**
* 定義
~~~
$pimple['storage'] = function ($pimple) {
$driver = Config::get('upload_driver');
$option = Config::get('upload_' . $driver);
return StorageFactory::make($driver, $option);
};
~~~
* 使用
~~~
use app\common\App;
$login = App::getSingleton()->storage;
~~~
**上傳對象**
* 定義
~~~
$pimple['upload'] = function ($pimple) {
$upload = new Upload($pimple['storage']);
// 驗證文件是否上傳
$upload->addHook(Upload::HOOK_UPLOAD_CHECK, CheckHook::class);
// 文件上傳成功的處理
$upload->addHook(Upload::HOOK_UPLOAD_SUCCESS, SuccessHook::class);
return $upload;
};
~~~
* 使用
~~~
use app\common\App;
$login = App::getSingleton()->upload;
~~~