ImageVerifierCode 换一换
格式:DOCX , 页数:87 ,大小:138.31KB ,
资源ID:15880176      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15880176.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(怎么一步步编写简单的PHP的Framework文档格式.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

怎么一步步编写简单的PHP的Framework文档格式.docx

1、/Library/Toper/Core/FrontController.class.php;/导入前端控制器$frontController = Tp_FrontController:getInstance();$frontController-run(); 这个文件可以只做一件事情,那就是将控制权交给框架。 大家都知道,一个MVC的应用,所有的请求都必须经过控制器,所以下面我们来编写一个比较简单的控制器:class Test_IndexController extends Tp_Controller public function indexAction() echo a 这个类只需要继承自

2、Tp_Controller即可,Tp_Controller是Toper的控制器的基类,只要你继承它,你就可以使用框架帮你写好的一系列方法,这样就可以大大减少你自己的工作量了,并且按照规范,函数名也是有意义的,如刚才写的这个函数代表的意义就是访问Test模块IndexContrller这个控制器下面的index这个Action。 那么如何使用模型呢?实际上非常简单。class Test_IndexModel extends Tp_Model public function test() return test 原理和控制器一样,也是继承框架的类,然后自定义方法,这个地方的方法名没有限制,可以随意

3、。 那么编写模型之后怎么在控制器中调用呢,其实方法就是在控制器中实例化这个模型类,然后调用相应的方法即可,所以修改刚才这个控制器的类: $model = new Test_IndexModel(); echo $model-test(); 为什么没有include语句? 那是因为框架帮你做完了这一切,当然,框架不是万能的,当你比较熟悉之后,也可以选择不使用自动导入。 刚才我们所做的一切都没有View,那么怎么编写View呢,实际上就是一个HTML文件,框架在View这一层一般是实现标签库,标签库帮你完成一些原来需要用PHP代码才能完成的事情,比如循环遍历,没有标签库可能你就只能在这个View的

4、文件中使用,这样对于代码分离很不好。 如果你对标签库没有概念,那么你直接看下面的代码吧!html titletest/headbodyprint name = Hello world! type = str /body/html 这是一段没有什么难度的代码,唯一的难度可能就是这个print标签,这个标签是框架定义的,它的功能很简单,就是打印一个字符串,你可能觉得这样没什么意义,因为我使用PHP代码也可以很轻易的完成这个功能,但是你想像一下一个做前端的为什么还需要懂PHP呢,如果使用标签库,那么前端开发人员就可以像使用HTML标签一样操作数据了。 我们知道所有的请求都必须要通过控制器,所以外部是

5、无法直接访问这个视图文件的,所以又需要修改控制器的代码了! $this-_display(Test.test 如果你学过smarty,你可能对display方法很熟悉,实际上这个函数的功能就是显示一个模板文件! 好了,一个基本的MVC应用就搭起来了,不是很难吧! 如何查看效果呢,有两种方式: 1.CGI: 打开浏览器,浏览器访问时,如果您的域名是:localhost/testframework,那么您可以使用localhost/testframework/Public/index.php/Test/Index/index来访问,如果您设置了虚拟主机,如,那么只需要使用 2.CLI:通过命令行直

6、接执行PHP脚本时,在Public目录下面使用php index.php m:test c:Index a:index。这个例子的代码点此下载 刚才是使用框架实现了一个MVC的应用,那么怎么不使用框架来构建一个MVC应用呢?下次再讲,请继续关注! 刚把明天吃饭的事情安排好,有了时间,果断继续写吧! 实际上要自己实现一个MVC的应用也不难,我们知道MVC里面所有内容都必须经过控制器,所以如何把控制权交给控制器呢? 我们需要一个入口文件,入口文件负责将传递的请求交给对应的控制器,实际上也就是完成路由的功能。 为了学习的需要,可以将路由的功能简化,用户通过GET方式将控制器的名和Action的名传递

7、过来,入口文件接收到所有参数之后,按照之前约定的规则include某一个文件,然后实例化这个类,再调用这个类的相应方法。$controller = empty($_GETc) ? Index : trim($_GET); /设置了默认的控制器$action = empty($_GETindex /设置了默认的Action$controllerBasePath = dirname(_FILE_) . /modules/controllers/$controllerFilePath = $controllerBasePath . $controller . Controller.phpif(is_

8、file($controllerFilePath) include $controllerFilePath; $controllerName = $controller . Controller if(class_exists($controllerName) $controllerHandler = new $controllerName(); if(method_exists($controllerHandler,$action) $controllerHandler-$action(); else the method does not existsthe class does not

9、exists else controller not exists 看着代码行数还是挺多的哦,实际上实现的功能比较简单,就是通过接受通过GET方式传递的控制器名和Action名,如果没有传递,那么调用默认的控制器名或者Action名,当用户传递了控制器名和Action名之后可能会存在这样一个问题,就是通过我们之前约定的规则找不到相应的文件或者类或者方法,那么我们需要显示友好的信息,而不是让PHP抛出一系列的警告,这样对于程序的健壮性很有帮助。 当有了控制器之后,一切都变得简单了,对于模型,我们可以把它看成是一个普通的类,只是在功能上它负责业务逻辑的处理。class IndexModel 作为演

10、示,我们只是在这个模型里面返回一个Hello World,那么控制器怎么使用这个模型呢,实际上也就是首先include这个文件,然后实例化类,调用相应的方法。 我们现在修改控制器为:class IndexController public function index() $modelPath = dirname(_FILE_) . /./models/IndexModel.php if(file_exists($modelPath) include $modelPath; $model = new IndexModel();model does not exists 现在模型有了,那么怎么连

11、接视图呢?pphp if(isset($var1) echo $var1; ?/p 写完视图之后,怎么通过控制器调用这个视图呢? 修改控制器至如下: $var1 = $model- $viewPath = dirname(_FILE_) . /./views/index.php if(file_exists($viewPath) include $viewPath;view does not exists 这样一个MVC的应用就搭起来了,虽然比较简陋,问题还多多!睡不着,继续写一篇吧! 按照上一次我讲的内容,一个基本的MVC构架是已经搭建起来了的,但是本身还存在很多问题,如:模型这一块儿每次连接DB,关闭DB的代码冗余,视图这一块儿还是代码,每个文件要使用很多include代码等等。 要编写一个框架,那么首先就要规定一个标准的目录结构,我们暂时把这个目

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1