CakePHP,Modelの型検証

今回はUsersというUserが配列で複数渡されるメソッドで,Userの型検証を行う方法について書いていきたいと思います.

use App\Model\Entity\User;

// クラス内で
    public function getUsers(array $users)
    {
        $isUsers = collection($users)->every(
            function($user) {
                return $user instanceof User;
            }
        );
        if(!$isUsers) throw new \InvalidArgumentException("Invalid users given");
        $this->users = $users;
        return $this;
    }
// 

上記はチェーンメソッドを実装したクラスにおけるUserのセッターです.コレクションのeveryを使用することで,usersの配列の中が全てUserのインスタンスであるかどうかを検証することができます.