Интерфейс и Черты не работают должным образом

Это странное поведение, свидетелем которого я был сегодня, и я удивляюсь, почему .. Я сразу перейду к делу:

Поэтому мы используем переводы a2lix с symfony и fosasticabundle

class Class
{
use Translatable;

}

class ClassTranslation  implements \A2lix\I18nDoctrineBundle\Doctrine\Interfaces\OneLocaleInterface
{
use Translation;

}

В этом сценарии однажды я бегу

php app / console fos :astica: заполнить

Я получаю:

[InvalidArgumentException] Параметр ‘locale’ не имеет
существовать.

Но параметр на самом деле находится в признаке (от поставщика, который включает в себя 2 признака переводимых методов и переводимых свойств)

Вопрос в том, почему это происходит. У нас есть свойство из признака, но когда мы запускаем команду, оно не находит его.

Хорошо, теперь вот странная часть!

В этом сценарии все работает как ожидалось:

class Class
{
use Translatable;

}

class ClassTranslation
{
use Translation;

}

Если я решу не реализовывать интерфейс, команда будет работать гладко, интерфейс просто заставит вас получить метод getter и setter для атрибута locale. Мне просто интересно, почему это происходит.

2

Решение

Это может относится к https://github.com/a2lix/I18nDoctrineBundle/issues/16.

Я не думаю, что это связано с особенностями php, поскольку не будет InvalidArgumentException. Возможно, код черты не выполняется, если интерфейс отсутствует, поэтому в этом случае ошибки нет. Пожалуйста, проверьте реализацию вашей черты, возможно, сделайте некоторые выходные данные отладки, чтобы увидеть, когда код выполняется и когда происходит исключение.

1

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

Других решений пока нет …