PHPを使用して最初の実際のMVCアプリケーションを作成しています。私のアプリケーションは非常に小さいので、すべてを最初から作成する方が速いと思ったので、フレームワークを使用していません。
私のアプリでは、ユーザーは登録、ログイン、そしてコンテンツの書き込み/編集/削除を行うことができます。各コンテンツは、データベースのuserid-columnによってその所有者を参照します。
これから、ユーザーアクセス制限を実装しようとしています(ユーザーは自分のコンテンツ/アイテム/モデルのみを表示/編集/削除できるという意味で)。「有効なアクセス」のチェックはどこで行われるべきで、ユーザーオブジェクトはどこでインスタンス化されるのでしょうか。
つまり、コントローラー、モデル、ビューの現在のユーザーに関する情報が絶対に必要です。したがって、アプリケーションの各部分から快適にアクセスできるように、すべてのユーザー情報を格納するグローバルユーザーオブジェクト(index.phpで定義)を使用できるかどうかを考えています。
現時点では、このスニペットはコントローラーにユーザー情報へのアクセスを許可し、ビューに渡されるデータ配列にも保存します。
class Controller {
protected $data, $id, $user;
public function __construct($action = null, $data = null) {
if (User::isLoggedIn()) {
$this->user = new User($_SESSION['user']);
$this->data['user'] = $this->user;
}
}
}
このパターンに従って、作成する各モデルにユーザー情報を渡すか、代わりに独自のユーザーオブジェクトをインスタンス化する必要があります。
ここに行く方法は何ですか?グローバルユーザーオブジェクト、各モデルでのインスタンス化、またはユーザーオブジェクトをパラメーターとしてモデルとビューに渡す?
ご協力ありがとうございました!