组件机制

mpf365棋牌游戏大厅官网_约棋牌365_365棋牌怎么解绑设备使用\mpf\core\Di来实现组件机制;可以使用\mpf\core\Dibet36体育在线提现,提供一个全局的调用,以及相近功能类的替换,以及单例模式。


1.Di类实例化


实例化后,可以通过\mpf\core\Di::$Di调用实例

$Di?=?new?\mpf\core\Di();


Di类注册单例模式组件;也就是说只会实例化一次组件。

\mpf\core\Di::$Di->register("cache",function(){
return?new?\mpf\cache\FileCache(__DIR__.'/../runtime/fileCache');
},true);


2.组件调用

通过\mpf\core\Di::$Di属性的方式调用

\mpf\core\Di::$Di->fileCache->get("key1");


通过\mpf\core\Di::$Di数组的方式调用

\mpf\core\Di::$Di->["fileCache"]->get["key1"];


Di类注册组件,每次调用都实例化组件。

\mpf\core\Di::$Di->register(“cache”,function(){
????return?new?\mpf\cache\FileCache(__DIR__.'/../runtime/fileCache');
},false);


?

3.Di类批量注册组件

$diConfig?=?[
????//数据库配置
????'dbConn'=>[
????????'class'=>function(){
????????????return?new?\mpf\db\DbConnection([
????????????????"dbtype"=>"mysql",
????????????????"dbcharset"=>"utf8",
????????????????"dbport"=>3306,
????????????????"pdoAttribute"=>[
????????????????],
????????????????"dbhost"=>"localhost",
????????????????"dbpwd"=>"123456",
????????????????"dbroot"=>"root",
????????????????"dbname"=>"test"
????????????]);
????????},
????????'shared'=>true
????],
????//缓存组件
????'cache'=>[
????????'class'=>function(){
????????????return?new?\mpf\cache\FileCache(__DIR__.'/../runtime/fileCache');
????????},
????????'shared'=>true
????],
????//验证码
????'validateCode'=>[
????????'class'=>function(){
????????????return?new?\mpf\ext\ValidateCode(dirname(__DIR__)?.?'/lib/fonts/detourDork.ttf');
????????},
????????'shared'=>true
????]
];
\mpf\core\Di::$Di->betchRegister($diConfig);


4.Di卸载组件

\mpf\core\Di::$Di->remove("fileCache");



php文档