Интерфейс и функции не работают должным образом
Это какое-то странное поведение, свидетелем которого я стал сегодня, и мне интересно, почему.. Я сразу перейду к делу:
Поэтому мы используем переводы a2lix с symfony и fos elasticabundle
class Class
{
use Translatable;
}
class ClassTranslation implements \A2lix\I18nDoctrineBundle\Doctrine\Interfaces\OneLocaleInterface
{
use Translation;
}
В этом сценарии, как только я запущу
Php приложение/консоль fos: elastica:заполнить
Я получаю:
[Исключение InvalidArgumentException] Параметр "локаль" не существуют.
Но параметр на самом деле находится в черте (из поставщик, который включает в себя 2 переводимых метода признаков и переводимые свойства)
Вопрос в том, почему это происходит. У нас есть свойство от признака, но как только мы запускаем команду, она его не находит.
Хорошо, теперь начинается странная часть!
В этом сценарии все работает так, как ожидалось:
class Class
{
use Translatable;
}
class ClassTranslation
{
use Translation;
}
Если я решу не реализовывать интерфейс, команда будет выполняться плавно, интерфейс просто заставит вас использовать геттер и сеттер для локали приписывать. Мне просто интересно, почему это происходит.
1 answers
Это может относиться к https://github.com/a2lix/I18nDoctrineBundle/issues/16 .
Я не думаю, что это связано с особенностями php, так как не было бы исключения InvalidArgumentException. Возможно, код признака не выполняется, если интерфейс отсутствует, поэтому в этом случае ошибки нет. Пожалуйста, проверьте реализацию вашей особенности, возможно, сделайте некоторые отладочные выходные данные, чтобы увидеть, когда выполняется код и когда происходит исключение.