PHP は同じトレイトを 2 回コンパイルしようとしているようです。
use Behat\MinkExtension\Context\MinkDictionary;
class FeatureContext
{
use MinkDictionary, OrderDictionary;
}
use Behat\MinkExtension\Context\MinkDictionary;
trait OrderDictionary
{
//if you comment out this line, everything works, but methodFromMinkTrait is
//unresolved
use MinkDictionary;
public function myMethod($element, $text)
{
//some method that uses methods from MinkDictionary
return $this->methodFromMinkTrait();
}
}
コンパイルはFatal Errorで失敗します:
致命的なエラー: トレイト メソッド setMink は適用されませんでした。
setMinkmethod はMinkDictionarytrait でのみ定義されます。
問題は、 と の両方OrderDictionaryがのFeatureContextメソッドを使用していることMinkDictionaryです。そのため、 を追加use MinkDictionaryしましたOrderDictionary。これは許されませんか?それをコメントアウトすると、すべてが機能しますが、エディターは多くの未解決のメソッドを表示しています - それらがどこから来ているのかわかりません。