第二天ci项目规划 前后台分离
第二天ci项目规划 前后台分离
1/31/2016 2:40:26 PM
前后台
- 表面上看前后台不同网站 但是数据是他们之间的联系要完成结构完整项目 设计好前后台 基于mvc框架 前后台那些地方不同 model公用 包括一些其他类和辅助函数可以公用
- 默认一个application 对应一个应用,如果需要前后台两个应用
- 比较简单方法 复制一份 application 更改名称 admin 同时编写admin.php作为入口文件 优点 简单 缺点 重复代码太多 类似创建两个应用
- ci框架控制器支持子文件夹
application/controller/admin
直接访问localhost/citest/index.php/admin/hello/
视图也支持子文件夹视图$this->load->view("admin/hello.html",$data)
这个类似tp - 通常项目需求 ,前台网站支持换肤功能 前台视图单独拿出来处理
-
实现这一点 需要对核心库进行拓展或者替换核心类文件或者自己编写类文件
-
拓展核心类 拓展类必须由母类拓展而来 新拓展的类所在文件必须以MY_为前缀 文件放在 application/core下
-
步骤
- 网站根文件夹 下创建themes和 themes/default
- 定义一个常量 config/constants.php中
define('THEMES_DIR',FCPATH.'themes/');
- 视图的加载 loader.php
$this->ci_view_path = array(APPPATH.'views/' => TRUE);
class MY_Loader extends CI_Loader { protected $_theme = 'default/'; public function switch_themes_on() { $this->ci_view_paths = array(THEMES_DIR.$this->_theme => TRUE); } public function switch_theme_off(){} }
-
哪里调用这两个方法 application/core/MY_Controller.php
//定义前台总控制器 class Home_Controller extends CI_Controller { public function __construct(){ parent::__construct(); $this->load->switch_theme_on(); //开启皮肤功能 } } //后台控制器 class Admin_Controller extends CI_Controller { public function __construct(){ parent::__construct(); $this->load->switch_theme_off(); //关闭皮肤功能 } }
-
控制器通过子文件夹分离 前台放到controller根目录下 后台放到admin中 视图文件则分离 前台放到 网站根目录下 themes 且还支持子文件夹 后台使用默认view文件夹
-