在codeigniter中单独的Admin和Front

时间:2011-09-22 07:55:37

标签: codeigniter admin frontend

在codeigniter中为网站分隔管理员和前端的最佳方法是什么,因为我使用所有的库,模型,帮助器等,但只有控制器和视图是分开的。

我想要一种更合适的方式,提高性能,简化以及共享模型和库等。

3 个答案:

答案 0 :(得分:16)

我强烈建议您阅读CI dev Phil Sturgeon撰写本文所述的方法:

http://philsturgeon.co.uk/blog/2009/07/Create-an-Admin-panel-with-CodeIgniter

我的建议:使用模块来组织项目。

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home

为前端和/或后端创建base controller。像这样:

// core/MY_Controller.php
/**
 * Base Controller
 * 
 */ 
class MY_Controller extends CI_Controller {
                      // or MX_Controller if you use HMVC, linked above
    function __construct()
    {
        parent::__construct();
        // Load shared resources here or in autoload.php
    }
}

/**
 * Back end Controller
 * 
 */ 
class Admin_Controller extends MY_Controller {

    function __construct()
    {
        parent::__construct();
        // Check login, load back end dependencies
    }
}

/**
 * Default Front-end Controller
 * 
 */ 
class Public_Controller extends MY_Controller {

    function __construct()
    {
        parent::__construct();
        // Load any front-end only dependencies
    }
}

后端控制器将extend Admin_Controller,前端控制器将extend Public_Controller。前端基本控制器不是必需的,但作为一个例子,它可能很有用。如果需要,您可以扩展MY_Controller

在需要的地方使用URI routing,并为前端和后端创建单独的控制器。如果前端和后端控制器都位于同一个应用程序中,则可以共享所有帮助程序,类,模型等。

答案 1 :(得分:10)

我使用一种非常简单的方法:文件夹。查看CI用户指南部分Organizing Your Controllers into Sub-folders

我建立了面向公众的网站,其他任何网站都将使用CodeIgniter构建。然后我还有两个额外的文件夹,controllers/adminviews/admin

管理员控制器可通过 http:// [hostname] / admin / controller 进行访问,除了具有特定的身份验证检查外,其行为与任何其他控制器一样。同样,只需使用文件夹名称调用视图:$this->load->view('admin/theview');

我没有找到做比这更复杂的事情的理由。

答案 2 :(得分:2)

你们都可以在这里找到完整的解决方案https://github.com/bhuban/modular

使用HMVC管理员和前端的模块分离以及使用模板库的模板分离

我使用的是两个第三方库,你可以在zip文件中找到它。

  1. 由wiredesignz开发的模块化HMVC
  2. Phil Sturgeon的模板引擎
  3. 只需将其解压缩到您的网络服务器根目录并运行

    即可
    localhost/modular for front-end
    

    localhost/modular/admin for back-end
    

    application/back-modules,它适用于后端模块

    application/front-modules,它适用于前端模块

    类似地 templates/admin用于后端模板 templates/front用于前端模板

    themes/admin用于后端主题 themes/front用于前端主题

    使用config.php和index.php

    配置的原始代码中没有任何内容被攻击