要するに、私は持っています
abstract class AbstractMapper implements MapperInterface {
public function fetch(EntityInterface $entity, Array $conditions = array()) {
. . .
}
}
interface MapperInterface {
public function fetch(EntityInterface $entity, Array $conditions = array());
}
abstract class AbstractUserMapper extends AbstractMapper implements UserMapperInterface {
public function fetch(UserInterface $user, Array $conditions = array()) {
$conditions = array_merge($conditions, array('type' => $user->getType()));
return parent::fetch($user, $conditions);
}
}
interface UserMapperInterface {
public function fetch(UserInterface $user, Array $conditions = array());
}
これは私が得るエラーです:
致命的なエラー: Model\Data\Mappers\AbstractUserMapper::fetch() の宣言は、Model\Data\Mappers\Interfaces\MapperInterface::fetch() の宣言と互換性がある必要があります
を に変更するUserInterface
とEntityInterface
動作しますが、間違っているように見えます。また、AbstractUserMapper::fetch()
入力すると$user
、IDE は myEntityInterface
で宣言されたメソッドのみを表示getType()
し、そのリストにはありません。
$user->getType()
実装しているオブジェクトを知っているので、まだ配置できることはわかっていますUserInterface
が、すべてが間違っているように見えます.IDEでさえそう考えているか、ここに何かが欠けていますか?
これが機能しないのはなぜですか?EntityInterface
' I think UserInterface
.