過去に CakePHP と仕事をしたことがあり、彼らのモデル システムの構築方法が気に入りました。拡張モデル間で検証を処理するという彼らのアイデアを取り入れたいと思っています。
次に例を示します。
class users extends model {
var $validation = array(
"username" => array(
"rule" => "not_empty"
),
"password" => array(
"rule" => "valid_password"
)
);
public function create_user() {
if($this->insert() == true) {
return true;
}
}
}
class model {
public function insert() {
if(isset($this->validation)) {
// Do some validation checks before we insert the value in the database
}
// Continue with the insert in the database
}
}
これの問題は、モデルが親クラスであるため、モデルが検証ルールを取得する方法がないことです。create_user() メソッドをパラメーターとして明示的に検証ルールを渡すことなく、 $validation プロパティを親クラスに渡す方法はありますか?
編集:
また、 __construct() メソッドを介して親クラスに渡すことを避けます。これを行う別の方法で、ユーザー クラス内に多くの余分なコードを作成せず、モデル クラスにほとんどの作業を行わせる方法はありますか (すべてではない場合)。