使用Cake管理:创建新的应用程序,或与相同的应用程序一起使用


Admin with Cake: Create new Application, or use with the same?

我已经用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';
    }
}