внедрение зависимостей — PHP Dice IoC — Ошибка разбора: синтаксическая ошибка, неожиданный ‘.’?

Я пытаюсь использовать Игральная кость для моей инъекции зависимости.

Когда я запускаю код ниже (из 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 что это такое??

Есть идеи?

0

Решение

Оператор vararg / splat (...) — новая функция, представленная в PHP 5.6. Странно, что популярная библиотека опирается на такой неясный синтаксис, но вам кажется, что для успешного выполнения необходимо обновить код.

PHP 5.6 Новые функции

PHP 5.6 и оператор Splat

2

Другие решения

Версия PHP 5.4-5.5 больше не доступна на https://github.com/TomBZombie/Dice. Большая часть общего хостинга по-прежнему использует 5.5. Может кто-нибудь настроить быть доступным по ссылке sdome.
Я знаю, что это небольшое нарушение правил. Благодарю вас!

0

По вопросам рекламы [email protected]