Инъекция конструктора в Рестлер
Возможно ли передать аргументы классу API для внедрения конструктора? Например, в index.php У меня есть следующее:
$r->addAPIClass('Contacts', '');
И Contacts.php выглядит примерно так:
class Contacts
{
private $v;
public function __construct(Validation v)
{
$this->v = v;
}
}
Как бы я сделал это с Restler?
2
1 answers
Restler 3 RC5 имеет контейнер для внедрения зависимостей под названием Scope
, который отвечает за создание новых экземпляров любого класса по их имени, это удобно для этой цели.
Как только вы зарегистрируете класс Contacts с его зависимостью с помощью метода register, он будет создан лениво, когда его попросят
<?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
, если у него есть какие-либо зависимости
6
Author: Arul Kumaran, 2014-03-25 05:29:38