これは私が今日目撃したいくつかの奇妙な動作であり、その理由が気になります..
そのため、symfony と fos elasticabundle で a2lix 翻訳を使用しています。
class Class
{
use Translatable;
}
class ClassTranslation implements \A2lix\I18nDoctrineBundle\Doctrine\Interfaces\OneLocaleInterface
{
use Translation;
}
このシナリオでは、一度実行すると
php アプリ/コンソール fos:elastica:populate
私は得ています:
[InvalidArgumentException] パラメータ 'locale' が存在しません。
しかし、パラメーターは実際には特性にあります (2 つの特性の翻訳可能なメソッドと翻訳可能なプロパティを含むベンダーから)
問題は、なぜこれが起こるのかです。特性からのプロパティがありますが、コマンドを実行すると、それが見つかりません。
さて、ここで奇妙な部分が来ます!
このシナリオでは、すべてが期待どおりに機能します。
class Class
{
use Translatable;
}
class ClassTranslation
{
use Translation;
}
コマンドがスムーズに実行されるインターフェースを実装しないことにした場合、インターフェースはロケール属性のゲッターとセッターを強制するだけです。なぜこれが起こるのだろうか。