Pimple Containter 容器使用实例代码
Pimple/Container
安装
composer require "pimple/pimple": "^3.0"
代码
加载并实例化
require DIR . '/vendor/autoload.php';
$pc = new Pimple\Container();
参数存储
$pc['app_id']='pimple';
单例存储
$pc['app']=function($c){
$app=new stdClass();
$app->app_id=$c['app_id'];
return $app;
};
$app_one=$pc['app'];
$app_two=$pc['app'];
var_dump($app_one === $app_two);// true
非单例存储
$pc['api'] = $pc->factory(function ($c) {
$api=new stdClass();
$api->app_id=$c['app_id'];
return $api;
});
$api_one=$pc['api'];
$api_two=$pc['api'];
var_dump($api_two === $api_two);// false
存储匿名函数
$pc['random_func']=$pc->protect(function () {
return rand();
});
获取匿名函数
$random=$pc->raw('random_func');
var_dump($random());
服务提供者
class UcProvider implements Pimple\ServiceProviderInterface
{
public function register(Pimple\Container $c)
{
$uc_id=6;
$c['uc_config']=['uc_id'=>$uc_id];
$c['uc_class']=function ($c) use ($uc_id){
$uc=new stdClass();
$uc->id=$uc_id;
return $uc;
};
}
}
$pc->register(new UcProvider());
var_dump($pc['uc_config']);
var_dump($pc['uc_class']);
文档
官网文档 : http://pimple.sensiolabs.org/
关键字:php, container, composer
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!