界面和特征无法正常工作

时间:2016-10-10 09:16:26

标签: php symfony oop foselasticabundle a2lix-translation

这是我今天目睹的一些奇怪行为,我想知道为什么......我会直言不讳:

所以我们使用symfony和fos elasticabundle

进行a2lix翻译
class Class
{
    use Translatable;

}

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

}

在这种情况下,一旦我运行

  

php app / console fos:elastica:populate

我得到了:

  

[InvalidArgumentException]参​​数' locale'才不是   存在。

但参数实际上是在特征中(来自供应商,包括2个特征可翻译方法和可翻译属性)

问题是为什么会发生这种情况。我们拥有该特性的属性,但是一旦我们运行命令它就找不到它。

好的,现在这里有一个奇怪的部分!

在这种情况下,一切都按预期工作:

class Class
{
    use Translatable;

}

class ClassTranslation 
{
    use Translation;

}

如果我决定不实现接口,那么命令运行顺畅,接口只会强制你为locale属性设置getter和setter。我只是想知道为什么会这样。

1 个答案:

答案 0 :(得分:1)

这可能与https://github.com/a2lix/I18nDoctrineBundle/issues/16有关。

我不认为这与php特征有关,因为不存在InvalidArgumentException。如果接口不存在,可能不会执行特征代码,因此在这种情况下没有错误。请检查特征的实现,可能会执行一些调试输出以查看代码执行的时间以及何时执行。