Pimple Containter 容器使用实例代码

Pimple容器使用详解
本文介绍了Pimple容器的安装及使用方法,包括依赖注入、单例和服务提供者的实现方式,并通过示例展示了如何进行参数存储及服务注册。

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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值