在codeigniter中单独的Admin和Front

Soh*_*ail 17 frontend codeigniter admin

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

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

Wes*_*rch 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

为前端和/或后端创建基本控制器.像这样的东西:

// 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
    }
}
Run Code Online (Sandbox Code Playgroud)

后端控制器将extend Admin_Controller和前端控制器一起使用extend Public_Controller.前端基本控制器不是必需的,但作为一个例子,它可能很有用.MY_Controller如果你愿意,你可以改为扩展.

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


Mik*_* S. 10

我使用一种非常简单的方法:文件夹.查看CI用户指南部分,将控制器组织到子文件夹中.

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

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

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

  • 这是最新链接http://ellislab.com/codeigniter%20/user-guide/general/controllers.html#subfolders (2认同)