1

我已经用 CakePHP 框架建立了一个电子商务网站。

现在,我需要实现管理登录和订单/用户管理......

最大的问题是:我应该创建一个新的应用程序(一个新的 CakePHP 应用程序文件夹),还是使用现有的?

使用同一个文件夹可以减少我复制模型的时间,但是会大大降低“安全性”,因为我需要为管理员和用户创建方法......

使用单独的框架,几乎相同的模型,将有助于我的视图......我会使用另一个页面模板,登录系统将与普通网站不同。

那么,这种情况下的“最佳”解决方案是什么?

谢谢

4

1 回答 1

4

在同一个应用程序中构建管理员。它不会降低安全性。您可以使用Prefix Routing轻松控制管理员用户可以访问哪些控制器方法。您还可以根据路由前缀更改视图布局。如果你需要更细粒度的东西,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';
    }
}
于 2012-08-19T18:47:00.100 回答