PHP:命名空间和依赖注入(超薄框架)

时间:2017-12-15 15:38:19

标签: php dependency-injection slim

在依赖项中,我将authenticator类添加到容器中:

$container['authenticator']=function ($c) {
    return new \App\Auth\LDAPAuthenticator(...);
};

但是当我尝试从App \ Model \ Login类中使用它时,它会搜索App \ Model路径。这怎么可能?

App \ Model \ Login的构造函数:

namespace App\Model;
...

$this->authenticator = $c['authenticator'];

App \ Model \ Login中的方法:

$result = $this->authenticator($args);

错误讯息:

"Call to undefined method App\\Model\\Login::authenticator()

应该尝试调用App \ Auth \ LDAPAuthenticator

一些澄清, 1)这有效:

$authenticator = new \App\Auth\LDAPAuthenticator(...)

2)LDAPAuthenticator类是可调用的,因为它具有__invoke方法

0 个答案:

没有答案