我可以在同一个应用程序中处理Codiegnitor管理员和主要网站吗?

时间:2012-02-01 16:42:02

标签: php codeigniter

实际上我希望使用相同的应用程序处理我的网站/管理面板。所以我想知道那可能吗?

  

我的意思是这样的结构   http://www.mysite.com
  并为管理员   http://www.mysite.com/admin

所以我需要处理一个codeignitor的应用程序。我不希望为此目的安装两个codeignitor。

2 个答案:

答案 0 :(得分:3)

当然,您可以参阅CI文档中的部分说:

Running Multiple Applications with one CodeIgniter Installation

您还可以为控制器,模型和视图创建单独的文件夹,如:

+controllers
    +front (main site controllers will go here)
    +admin (admin controllers will go here)

+models
    +front (main site models will go here)
    +admin (admin models will go here)

+views
    +front (main site views will go here)
    +admin (admin views will go here)

参见以下部分:

Organizing Your Controllers into Sub-folders

答案 1 :(得分:0)

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

// core/MY_Controller.php
/**
* Base Controller
* 
*/ 
class MY_Controller extends CI_Controller {
  // or MY_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
        // Create and setup admin user session and other all dynamic admin url for image,js,css,etc..
    }
}

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

    function __construct()
    {
        parent::__construct();
        // Load any front-end only dependencies
        // Get user data of session and generate other all dynamic front url for image,js,css,etc..
    }
}

后端控制器将扩展Admin_Controller,前端控制器将扩展Front_Controller.Now您可以创建任何管理端控制器&模型并扩展到Admin_Controller,前端扩展到Front_Controller。

E.g(任何管理员控制器):

    class Admin extends Admin_Controller{
      function __construct(){
         parent::__construct();
      }   
    } 

E.g(任何前端控制员):

    class Home extends Front_Controller{
      function __construct(){
         parent::__construct();
      }   
    } 

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