Я пытаюсь использовать Игральная кость для моей инъекции зависимости.
Когда я запускаю код ниже (из Dice Doc),
include 'dice.php';
class A {
private $b;
public function __construct(B $b) {
$this->b = $b;
}
}
class B {
private $c,$d;
public function __construct(C $c, D $d) {
$this->c = $c;
$this->d = $d;
}
}
class C {
}
class D {
private $e;
public function __construct(E $e) {
$this->e = $e;
}
}
class E {
}$dice = new \Dice\Dice;
$a = $dice->create('A');
print_r($a);
Я получаю эту ошибку,
Ошибка синтаксического анализа: синтаксическая ошибка, неожиданное ‘.’ в C: … \ dice.php на линии
38
Если вы откроете dice.php, это строка, к которой относится сообщение об ошибке,
else $object = $params ? new $class->name(...$params($args)) : new $class->name;
Я выгляжу странно для меня — ...$params
что это такое??
Есть идеи?
Оператор vararg / splat (...
) — новая функция, представленная в PHP 5.6. Странно, что популярная библиотека опирается на такой неясный синтаксис, но вам кажется, что для успешного выполнения необходимо обновить код.
Версия PHP 5.4-5.5 больше не доступна на https://github.com/TomBZombie/Dice. Большая часть общего хостинга по-прежнему использует 5.5. Может кто-нибудь настроить быть доступным по ссылке sdome.
Я знаю, что это небольшое нарушение правил. Благодарю вас!