悪いコード プラクティスを防ぐために、プロジェクトを進める前に明確にしたいことがあります。以前はRuby on Railで開発しましたが、学習を始めたのでPHPと同じようにできるか知りたいのですが、Zend、Yiiなどのフレームワークを使いたくないのです。
私にとって、モデルはデータがデータベースに挿入される場所です。
コントローラーは、すべてのパラメーターを検索し、モデル内の関数を使用してデータをデータベースに処理する場所です。また、プロシージャがリターンの成功または失敗の場合にもルーティングまたはリダイレクトします。
view は、コントローラーで初期化するインスタント変数を取得し、それを使用してデータを適切な形式でレンダリングする場所です。
だから、ここでPHPで私に質問します。PHP で CRUD を作成したいと思います。多くの記事や投稿 (stackoverflow など) を調べましたが、一部の人々が別の種類のことを言っていることに混乱しました。
私の考えでは、モデルはデータベースへのデータの挿入/クエリにのみ関連する場所です。したがって、作成、表示、更新、削除のすべてのクエリをモデルに入れます。これが私のモデルの create_user 関数の例です。
function create_user($firstName, $lastName,$username, $password){
$query = "INSERT INTO `users` (`user_id`, `first_name`, `last_name`, `email`, `username`, `password`, `created_at`, `handphone_no`, `street_address`, `city`, `state`, `country`, `postal`, `birthday`, `company_id`)
VALUES (NULL, ?, ?, NULL, ?, ?, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2)";
if($stmt = $this->conn->prepare($query)) {
$stmt->bind_param('ssss', $firstName, $lastName,$username, $password);
$stmt->execute();
}
}
だから、私の最初の質問:私のモデルでは、私はオブジェクトに仮定してコントローラーに渡しますか?? または単に true または false を返して、プロセスの成功または失敗を示します。
私のユーザーコントローラーで、
class Users_controller {
private $user;
function __construct(){
$this->user = New User();
}
function create($firstName, $lastName,$username, $password){
$this->user->create_user($firstName, $lastName,$username, $password);
}
}
私の2番目の質問:私のCRUDの場合、レールでは、オブジェクトのIDを見つけて表示/編集するか、新しいモデルを作成/破棄します。では、ここのコントローラーは、データを表示するためにオブジェクトを返す必要がありますか? フォームをコントローラーに接続する方法を教えてください。私のフォームからパラメーターをコントローラーに渡します。
だから、今のところ私はそれについてのみ考えています。ありがとうございます...