为了构造函数注入,是否可以将参数传递给API类?例如,在index.php中,我具有以下内容:
$r->addAPIClass('Contacts', '');
和Contacts.php看起来像这样:
class Contacts
{
private $v;
public function __construct(Validation v)
{
$this->v = v;
}
}
我将如何与Restler做到这一点?
最佳答案
Restler 3 RC5有一个名为Scope
的依赖项注入容器,该容器负责根据名称创建任何类的新实例,为此它非常有用。
一旦使用register方法注册了具有依赖关系的Contacts类,当要求输入时,它将被懒惰地实例化。
<?php
include '../vendor/autoload.php';
use Luracast\Restler\Scope;
use Luracast\Restler\Restler;
Scope::register('Contacts', function () {
return new Contacts(Scope::get('Validation'));
});
$r = new Restler();
$r->addAPIClass('Contacts', '');
$r->handle();
通过使用
Scope::get('Validation')
,如果它具有任何依赖性,我们也可以注册Validation
关于php - ReSTLer中的构造函数注入(inject),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22616761/