我像这样绑定一个类:
App::bind('Some_Class', 'Other_Class')
这样调用App::make('Some_Class')将返回一个'Other_Class‘的实例。然而,在后面的脚本中,我想还原这一点,以便对make的调用现在将返回原始的类。
到目前为止,我已经尝试了这些:
App::bind('Some_Class', 'Some_Class')
App::bind('Some_Class', NULL)
这两种方法都不起作用--它们似乎使app存储了类的一个实例,这不好,因为我需要能够接受参数。如果在不带参数的情况下调用构造函数,则会触发致命错误。那么,如何解除绑定呢?
我甚至尝试过使用反射:
App::bind('Some_Class', function() {
$args = func_get_args();
$app = array_shift($args);
$reflection = new ReflectionClass( 'Some_Class' );
return $reflection->newInstanceArgs($args);
});
它还是不能工作!
发布于 2014-03-08 10:19:48
App::offsetUnset('Some_Class')
应该做到这一点。
如果您有一个应用程序的实例($app),您甚至可以执行unset($app['Some_Class'])
发布于 2014-03-06 14:33:27
我相信
App::instance('Some_Class', new Some_Class);
将进行恢复
https://stackoverflow.com/questions/22226955
复制