我已经使用CakePHP Framework构建了一个电子商务网站。
现在,我需要实施管理登录和订单/用户管理......
最大的问题是:我应该创建一个新的应用程序(一个新的CakePHP应用程序文件夹),还是使用现有的应用程序?
使用相同的文件夹,会让我花更少的时间复制模型,但是,会大大降低“安全性”,因为我需要为管理员和用户创建方法......
使用单独的框架,几乎相同的模型,可以帮助我查看...我会使用另一个页面模板,登录系统将与普通网站不同。
那么,这个案例的“最佳”解决方案是什么?
由于
答案 0 :(得分:4)
在同一个应用中构建管理员。它不会降低安全性。您可以使用Prefix Routing轻松控制管理员用户可以访问的控制器方法。您还可以根据路由前缀更改视图布局。如果你需要更细粒度的东西,Cake支持Access Control Lists复杂的权限系统。
最后,如果您使用一组模型和控制器,您的应用程序将更易于维护。
这是我在app_controller.php
中使用的一小段代码段。这是来自CakePHP 1.2内置的应用程序,因此可能需要稍微更新以适应更新版本。这假设任何注册用户都可以访问管理URL,但可以轻松更改:
function beforeFilter(){
if (isset($this->params['prefix']) && $this->params['prefix'] == 'admin') {
if (!$this->Session->check('User')) {
// save the url in the session so that you can redirect there after login
$this->Session->write('lastPageVisited', $this->params['url']['url']);
$this->redirect('/users/login/');
exit();
}
// set the admin layout
$this->layout = 'admin';
}
}