我已经用CakePHP框架建立了一个电子商务网站。
现在,我需要实现管理登录和订单/用户管理。。。
最大的问题是:我应该创建一个新应用程序(一个新的CakePHP应用程序文件夹),还是使用现有的?
使用相同的文件夹,会让我花更少的时间复制模型,但会大大降低"安全性",因为我需要为管理员和用户创建方法。。。
使用单独的框架,使用几乎相同的模型,将有助于我理解。。。我会使用另一个页面模板,登录系统将不同于正常的网站。
那么,对于这种情况,什么是"最佳"解决方案呢?
感谢
在同一应用程序中构建管理员。它不会降低安全性。您可以使用前缀路由轻松控制管理员用户可以访问哪些控制器方法。也可以基于管线前缀修改视图布局。如果您需要更细粒度的东西,Cake支持复杂权限系统的访问控制列表。
最后,如果您使用一组模型和控制器,您的应用程序将更易于维护。
下面是我在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';
}
}