我正在用 PHP 编写我的第一个真正的 MVC 应用程序。我没有使用框架,因为我的应用程序太小了,以至于我认为从头开始编写所有内容会更快。
在我的应用程序中,用户可以注册、登录然后写入/编辑/删除内容。每条内容都通过数据库中的用户标识列引用其所有者。
我现在要实施用户访问限制(从某种意义上说,用户只能查看/编辑/删除他们的 OWN 内容/项目/模型)。我想知道应该在哪里检查“有效访问”以及在哪里实例化用户对象。
我的意思是,我肯定需要有关控制器、模型和视图中当前用户的信息。所以我在考虑是否有一个全局用户对象(在 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;
}
}
}
按照这种模式,我必须将用户信息传递给我创建的每个模型,或者让它们实例化自己的用户对象。
去这里的路是什么?全局用户对象,在每个模型中实例化还是将用户对象作为参数传递给模型和视图?
感谢您的帮助!