【问题标题】:Constructor Injection in RestlerRestler 中的构造函数注入
【发布时间】:2014-03-24 17:43:38
【问题描述】:

为了构造函数注入,是否可以将参数传递给 API 类?例如,在 index.php 我有以下内容:

$r->addAPIClass('Contacts', '');

Contacts.php 看起来像这样:

class Contacts
{
    private $v;

    public function __construct(Validation v)
    {
        $this->v = v;
    }
}

我将如何使用 Restler 来做到这一点?

【问题讨论】:

    标签: php rest restler


    【解决方案1】:

    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

    【讨论】:

    • 太棒了! RC5 上是否有任何文档?我目前正在使用 RC4,但在 Restler 页面上没有看到任何关于 RC5 的信息。
    • RC5 正在等待文档完成移动到主分支,很快就会发生!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    相关资源
    最近更新 更多