接口和特征不能正常工作
Interface and Traits does not work properly
这是我今天看到的一些奇怪的行为,我想知道为什么..我会开门见山:
所以我们使用 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] Parameter 'locale' does not
exist.
但参数实际上在特征中(来自供应商,包括 2 个特征可翻译方法和可翻译属性)
问题是为什么会这样。我们从特征中得到了 属性 但是一旦我们 运行 命令它就找不到它。
好的,奇怪的部分来了!
在这种情况下,一切都按预期进行:
class Class
{
use Translatable;
}
class ClassTranslation
{
use Translation;
}
如果我决定不顺利地实现命令 运行 的界面,界面只会强制您为语言环境属性设置 getter 和 setter。我只是想知道为什么会这样。
这可能与https://github.com/a2lix/I18nDoctrineBundle/issues/16有关。
我认为这与 php 特征无关,因为不会有 InvalidArgumentException。如果接口不存在,可能不会执行特征代码,所以在这种情况下没有错误。请检查您的特征的实现,也许做一些调试输出以查看代码何时执行以及何时发生异常。
这是我今天看到的一些奇怪的行为,我想知道为什么..我会开门见山:
所以我们使用 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] Parameter 'locale' does not exist.
但参数实际上在特征中(来自供应商,包括 2 个特征可翻译方法和可翻译属性)
问题是为什么会这样。我们从特征中得到了 属性 但是一旦我们 运行 命令它就找不到它。
好的,奇怪的部分来了!
在这种情况下,一切都按预期进行:
class Class
{
use Translatable;
}
class ClassTranslation
{
use Translation;
}
如果我决定不顺利地实现命令 运行 的界面,界面只会强制您为语言环境属性设置 getter 和 setter。我只是想知道为什么会这样。
这可能与https://github.com/a2lix/I18nDoctrineBundle/issues/16有关。
我认为这与 php 特征无关,因为不会有 InvalidArgumentException。如果接口不存在,可能不会执行特征代码,所以在这种情况下没有错误。请检查您的特征的实现,也许做一些调试输出以查看代码何时执行以及何时发生异常。