小编Jam*_*ing的帖子

修改 Pimple/Slim 容器

我希望能够修改 Pimple 容器上的数组,但是,因为服务被 Pimple 冻结,这似乎是不可能的。

我已经extend()在容器上尝试过该方法,但是,由于我的数组不是对象,我无法修改它。

$container = new Slim\Container();
$container['config'] = ['foo'=>'bar'];
// .... do some other stuff.
$container['config']['baz'] = 'Harry'; // throws an error regarding indirect modification
Run Code Online (Sandbox Code Playgroud)

使用extend

$container = new Slim\Container();
$container['config'] = ['foo'=>'bar'];
$container->extend('config',function($config,$container){
    $config['baz'] = 'Harry';
    return $config;
});
// throws an error PHP Fatal error:  Uncaught InvalidArgumentException: Identifier "config" does not contain an object definition.
Run Code Online (Sandbox Code Playgroud)

有没有办法修改 Pimple 容器内的定义?目前,我$config在实例化容器之前通过引用传递一个数组,这不太理想!

提前致谢

php slim pimple

5
推荐指数
2
解决办法
919
查看次数

标签 统计

php ×1

pimple ×1

slim ×1