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