- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编写PHP的Framework
框架这个概念可能一开始就吓坏了很多PHP的Coder,其实你只要把一个Framework想明白了,其实也没啥,只是别人功能更复杂,细节考虑的更多,代码质量更高。
框架最重要的一个文件为入口文件,基本上相当于一个总控开关,所有的请求都需要经过这个文件:
1 ?php
2 define(APP_PATH,dirname(__FILE__)./..); //应用路径
3 include APP_PATH./Library/Toper/Core/FrontController.class.php;//导入前端控制器
4 $frontController = Tp_FrontController::getInstance();
5 $frontController-run();
这个文件可以只做一件事情,那就是将控制权交给框架。
大家都知道,一个MVC的应用,所有的请求都必须经过控制器,所以下面我们来编写一个比较简单的控制器:
1 ?php
2 class Test_IndexController extends Tp_Controller {
3 public function indexAction() {
4 echo a;
5 }
6 }
这个类只需要继承自Tp_Controller即可,Tp_Controller是Toper的控制器的基类,只要你继承它,你就可以使用框架帮你写好的一系列方法,这样就可以大大减少你自己的工作量了,并且按照规范,函数名也是有意义的,如刚才写的这个函数代表的意义就是访问Test模块IndexContrller这个控制器下面的index这个Action。
那么如何使用模型呢?实际上非常简单。
1 ?php
2 class Test_IndexModel extends Tp_Model {
3 public function test() {
4 return test;
5 }
6 }
原理和控制器一样,也是继承框架的类,然后自定义方法,这个地方的方法名没有限制,可以随意。
那么编写模型之后怎么在控制器中调用呢,其实方法就是在控制器中实例化这个模型类,然后调用相应的方法即可,所以修改刚才这个控制器的类:
1 ?php
2 class Test_IndexController extends Tp_Controller {
3 public function indexAction() {
4 $model = new Test_IndexModel();
5 echo $model-test();
6 }
7 }
为什么没有include语句?
那是因为框架帮你做完了这一切,当然,框架不是万能的,当你比较熟悉之后,也可以选择不使用自动导入。
刚才我们所做的一切都没有View,那么怎么编写View呢,实际上就是一个HTML文件,框架在View这一层一般是实现标签库,标签库帮你完成一些原来需要用PHP代码才能完成的事情,比如循环遍历,没有标签库可能你就只能在这个View的文件中使用?php foreach(.....) ?,这样对于代码分离很不好。
如果你对标签库没有概念,那么你直接看下面的代码吧!
1 html
2 head
3 titletest/title
4 /head
5 body
6 print name = Hello world! type = str /
7 /body
8 /html
这是一段没有什么难度的代码,唯一的难度可能就是这个print标签,这个标签是框架定义的,它的功能很简单,就是打印一个字符串,你可能觉得这样没什么意义,因为我使用PHP代码也可以很轻易的完成这个功能,但是你想像一下一个做前端的为什么还需要懂PHP呢,如果使用标签库,那么前端开发人员就可以像使用HTML标签一样操作数据了。
我们知道所有的请求都必须要通过控制器,所以外部是无法直接访问这个视图文件的,所以又需要修改控制器的代码了!!!
1 ?php
2 class Test_IndexController extends Tp_Controller {
3 public function indexAction() {
4 $model = new Test_IndexMod
您可能关注的文档
最近下载
- PIC800 商品猪断奶到育肥阶段生长和饲喂曲线.pdf
- 【教案】高考专题复习之文言句式.doc VIP
- SilverFast(银块)使用教程.pdf VIP
- 计算机辅助翻译实用教程ppt课件(完整版).pptx VIP
- 设备专项吊装方案.pdf VIP
- 工程建设项目前期准备工作.ppt VIP
- 6从小爱科学第1课时 课件 2025道德与法治三年级上册.pptx
- JB_T 8519-2015矿井提升机和矿用提升绞车 盘形制动器.pdf
- PIC337 商品猪断奶到育肥阶段生长和饲喂曲线.pdf
- [嵌入式系统基础与实践——基于ARM Cortex-M3内核的STM32微控制器][刘黎明、王建波、赵纲领][电子课件]全.pptx VIP
文档评论(0)