为了构造函数注入,是否可以将参数传递给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/

10-16 13:25