私はPHPMVCに取り組んでいますが、設計の特定の側面を処理するのに苦労しており、すべてのユーザーがユーザー情報に簡単にアクセスできるようにすることは本当に困惑しています。
私は抽象クラスとしてUserを持っていたので、あなたはそれを使うことができましUser::getUserId()
たが、それが正しい方法であるかどうかわかりませんか?
次のように変更しましたが、動作しません。
問題
実行するたびにUserクラスをインスタンス化する基本的なコントローラーがあるとします。
コントローラ
class controller{
public $user;
function __construct(){
$this->user = new User();
$user->sessionRefresh();
$user->getUserId();
}
}
次に、インスタンス化されたUserモデルクラスがあります。
ユーザーモデルクラス
class User{
var $userId;
function sessionRefresh(){
if (isset($_SESSION['userId']) && $_SESSION['created'] + 15 * 60 < time())
session_regenerate_id();
}
function getUserId(){
$this->userId = $_SESSION['userId'];
}
}
次に、デフォルトのコントローラーを拡張するコントローラーがさらにあります。
フォーラムコントローラー-私が試していることをデモするための非常に基本的な
class forumcontroller extends controller{
function __construct(){
require 'templates/forum.php';
}
}
フォーラムテンプレート-非常に基本的な例
<html>
<title>Forum</title>
<body>
<div>Welcome User: <?=$user->userId;?></div>
</body>
</html>
私がしていることは完全に間違っていますか?
私は最近、PHPで手続き型からmvc / oopに飛躍しようとしましたが、それでも混乱していることは明らかです。