手机版

CI框架前后端分离方法详解

时间:2021-09-06 来源:互联网 编辑:宝哥软件园 浏览:

本文分析了CI框架前端和后端分离的方法。分享给大家参考,如下:

当我们使用CI框架开发(或者使用所有其他框架开发)时,我们总是习惯于将开发项目的前端和后端分开,并将它们各自的控制器、模型或视图放在不同的文件夹中。在这一点上,ThinkPHP框架比CI框架更方便。在这篇博文中,我们将讨论如何根据CI框架开发来分离前端和后端。(本文以自己开发的Pkadmin后台管理系统为例。Pkadmin后台管理系统是基于Codeigniter_v3.1.0框架和Olive Admin后台模板开发的。这里就不多介绍了。感兴趣的朋友可以去Github查看,欢迎大家指正,互相学习。

Github地址:https://github.com/zhihua-wei/Pkadmin)

1.建立合理的目录结构

相信大家都已经知道CI框架的目录结构和各个目录的功能,这里就不赘述了(如果还不明白,可以去博主的博客专栏)。要把前后框架的功能分开,首先要建立一个合理的目录结构,也就是要把你的前端控制器、后端控制器、前端视图、后端管理视图放在哪里。

上图为Pkadmin后台管理系统的目录结构。我把所有的控制器都放在框架本身的controller文件夹中,只添加了不同的前端后台文件夹来存储自己的控制器文件,视图是一样的。不要深入细节。

2.扩展加载器设置视图路径

(1)为了更好地维护项目,我将视图路径设置为常量,并在App/config/constants.php中定义常量:

//定义前台视图路径常量define ('home _ view _ dir ',' view/home/');//定义后台视图路径常量define ('admin _ view _ dir ',' view/pkadmin/');//版本定义(' pkadmin _ version ',' 1 . 0 . 0 ');扩展装载机

如何扩展加载器如果有不会的博主,可以查看CI框架手册,非常清楚。(多说一句:在APP/core文件夹下创建PK_Loader.php文件)

?PHP/* * *=====================================================*由口袋刀科技打造。* author : zhi Hua _ W[email protected]* date : 2016/11/02 0031 * time :am 9:19 * project : Pkadmin后台管理系统* Version: 1.0.0 * Power:加载程序扩展*========================。已定义(' BASEPATH ')或退出('不允许直接脚本访问');Classpk _ loader扩展ci _ loader {/* * *设置前台视图路径*/公共函数set _ home _ view _ dir(){ $ this-_ ci _ view _ path=array(app path。home _ view _ dir=true);}/* * *设置后台视图路径*/公共函数set _ admin _ view _ dir(){ $ this-_ ci _ view _ path=array(app path。admin _ view _ dir=true);}}3.展开控制器

扩展控制器主要是为了方便前台后台生成父控制器,也为了操作继承(为了方便,可以快速理解原理,简化代码)。

?PHP/* * *=====================================================*由口袋刀科技打造。* author : zhi Hua _ W[email protected]* date : 2016/11/02 0031 * time :am 9:23 * project : Pkadmin后台管理系统* Version: 1.0.0 * Power:控制器扩展*============================。已定义(' BASEPATH ')或退出('不允许直接脚本访问');/* * *前台父控制器*/class home _ controller扩展ci _ controller { public function _ _ construct(){ parent :3360 _ _ construct();$ this-load-set _ home _ view _ dir();}}/* * *后台父类控制器*/class pkadmin _ controller扩展ci _ controller { public $ datapublic function _ _ construct(){ parent :3360 _ _ construct();$ this-load-set _ admin _ view _ dir();}}4.试验

在Pkadmin控制器文件夹中创建一个新的Admin.php控制器文件,用于输出测试(代码已被删除和简化)。

?PHP/* * *=====================================================*由口袋刀科技打造。* author : zhi Hua _ W[email protected]* date : 2016/11/05 0015 * time :am 10:23 * project : Pkadmin后台管理系统* Version: 1.0.0 * Power:后台主页控制器*=====================。/defined('BASEPATH ')或exit('不允许直接脚本访问');类Admin扩展了Pkadmin _ Controller { public function _ _ construct(){ parent : _ _ construct();$this - load - model('login_model ',' admin ');$this - load - library('分页');}/* * * Pkmadmin后台主页操作*/public function index(){ $ this-load-view(' admin . html ',$ data);}}后台控制器继承后台父控制器,前台控制器集成前台父控制器。同样,在各自的视图文件夹中建立相应的视图文件是前端和后端的完美分离。

更多对CodeIgniter感兴趣的读者,请查看本网站主题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《Zend FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》、《php常见数据库操作技巧汇总》。

希望本文对基于CodeIgniter框架的PHP编程有所帮助。

版权声明:CI框架前后端分离方法详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。