【CakePHP】Warning「Declaration of App\Controller\<コントローラー名>::beforeFilter(Cake\Event\Event $event) should be compatible with Cake\Controller\Controller::beforeFilter(Cake\Event\EventInterface $event)」について

※環境:CakePHP 4.0.3

beforeFilterを呼び出すため、コントローラー「UsersController」の中に、公式ドキュメントの指示通りに、

use Cake\Event\Event;

class UsersController extends AppController
{
    public function beforeFilter(Event $event)
    {
        parent::beforeFilter($event);
    }
}

↑を書きしたが、
下記警告が表示されました。

Warning (2): Declaration of App\Controller\UsersController::beforeFilter(Cake\Event\Event $event) should be compatible with Cake\Controller\Controller::beforeFilter(Cake\Event\EventInterface $event)

解決策:
警告の内容をよく確認すれば、「Cake\Event\Event」ではなく「Cake\Event\EventInterface」であることがわかりました。

→ 下記通りに書き直せばエラーが解消されました。

//use Cake\Event\Event; //(誤)
use Cake\Event\EventInterface; //(正)

class UsersController extends AppController
{
//    public function beforeFilter(Event $event) //(誤)
    public function beforeFilter(EventInterface $event) //(正)
    {
        parent::beforeFilter($event);
    }
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です