Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在codeigniter中分离管理员和前端_Codeigniter_Admin_Frontend - Fatal编程技术网

在codeigniter中分离管理员和前端

在codeigniter中分离管理员和前端,codeigniter,admin,frontend,Codeigniter,Admin,Frontend,在codeigniter中,分离网站管理员和前端的最佳方法是什么?我使用的是所有库、模型、助手等,但只有控制器和视图是分开的 我想要一种更合适的方法,以提高性能、简单性、共享模型和库等。我强烈建议阅读CI开发人员Phil Sturgeon在本文中概述的方法: 我的建议是:使用模块来组织项目 为前端和/或后端创建一个。大概是这样的: // core/MY_Controller.php /** * Base Controller * */ class MY_Controller ext

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


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

我强烈建议阅读CI开发人员Phil Sturgeon在本文中概述的方法:

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

为前端和/或后端创建一个。大概是这样的:

// 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
    }
}
后端控制器将
扩展管理控制器
,前端控制器将
扩展公共控制器
。前端基本控制器并不是真正必要的,但作为一个例子,它是有用的。如果需要,您可以扩展MY_控制器


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

我使用一种非常简单的方法:文件夹。查看CI用户指南部分

我有我的面向公众的网站,因为任何其他将建立与CodeIgniter。然后我有两个额外的文件夹,
controllers/admin
views/admin

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


我找不到比这更复杂的理由

你们都可以在这里找到完整的解决方案

使用HMVC进行管理和前端模块分离,使用模板库进行模板分离

我正在使用两个第三方库,您可以在zip文件中找到它

  • wiredesignz开发的模块化HMVC
  • Phil Sturgeon用于模板化的模板引擎
  • 只需将其解压缩到Web服务器根目录并运行

    localhost/modular for front-end
    

    应用程序/后端模块
    ,用于后端模块

    应用程序/前端模块
    ,用于前端模块

    同样地
    templates/admin
    用于后端模板
    templates/front
    用于前端模板

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


    在使用config.php和index.php配置的原始代码中没有任何黑客攻击,我发现这种方法非常有用,但我有一个问题,因为我不明白。为什么要创建MY_控制器?有必要吗??如果管理员控制器和公共控制器扩展CI控制器会怎么样?这也是正确的吗?最新链接:嘿,你正在“将你的控制器组织到子文件夹中”。链接不起作用。请给我更新的链接。这是最新的链接,这正是我搜索的!但是当我尝试访问它时,我有一个错误:无法加载默认控制器。请确保Routes.php文件中指定的控制器有效。你有办法解决这个问题吗?感谢您回答上述问题,需要您的帮助“无法加载默认控制器。请确保Routes.php文件中指定的控制器有效。”
    localhost/modular/admin for back-end