首页 / PHP / 开发自个儿的PHPMVC框架(一)
开发自个儿的PHPMVC框架(一)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了开发自个儿的PHPMVC框架(一),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4289字,纯文字阅读大概需要7分钟。
内容图文
![开发自个儿的PHPMVC框架(一)](/upload/InfoBanner/zyjiaocheng/225/7560d3ceb4004734914b5c0f7ad8398c.jpg)
这个教程可以使大家掌握用mvc模式开发php应用的基本概念。此教程分为三个部分,现在这篇是第一部分。
现在市面上有很多流行的框架供大家使用,但是我们也可以自己动手开发一个mvc框架,采用mvc模式可以大大减少我们开发应用的时间,并且能够更好的组织项目源代码,而且其中的某些模块还可在其它项目中使用。现在我要教大家写一个简单的mvc框架。由于这个项目很简单,轻量,所以可能并不是最佳实践,也不具备安全性,还需要大家在实际应用中完善。
所用技术:php,面向对象开发方法。
开始
首先在网站根目录下建立三个文件夹
- models
- views
- controllers
然后在根目录下新建一个文件:
- index.php
现在项目结构应该像这样
§ 网站根目录
§ index.php
§ models/
§ views/
§ controllers/
index.php是整个web应用的入口点,所有的用户请求都会经过它。我们会写一些代码来把用户请求分派到相应的控制器中,这些控制器存放在controllers文件夹里。之后,我们就可以用下面的方式来实现页面跳转:
- http://你的域名.com/index.php?page1
- http://你的域名.com/index.php?page2
- http://你的域名.com/index.php?page3
设置前端控制器index.php
首先在index.php中定义网站根目录和网站域名,以便在整个应用中访问。
[php] view plain copy- //应用的根目录就是index.php的父目录
- define("SERVER_ROOT", dirname(__FILE__));
- //你的域名.comm 是你的服务器域名
- define('SITE_ROOT' , 'http://你的域名.com');
定义了网站根目录后,在任何php文件中,都能很方便的引用其它目录的php文件,因为index.php是入口文件,这样就能够在整个应用中访问在它之中定义的这些变量。
设置路由器router.php(转发用户请求到相应控制器)
在controllers目录下新建一个文件,名字为“router.php",这个文件用来处理所有页面请求。想像一下你家里的路由器,它负责把internet路由到家中的每个电脑。router.php文件将会获取传入到index.php的页面请求,然后把请求分派给不同的控制器(controllers)。
route.php中的代码:
[php] view plain copy- //获取所有请求
- $request = $_SERVER['QUERY_STRING'];
这句代码会获取传入到应用中的请求参数。QUERY_STRING就是”?“后面的所有字符串。
- http://你的域名.com/index.php?page1
- //解析$request变量,得到用户请求的页面(page1)和其它GET变量(&分隔的变量)如一个请求http://你的域名.com/index.php?page1&article=buildawebsite,则被解析为array("page1", "article=buildawebsite")
- $parsed = explode('&' , $request);
- //用户请求的页面,如上面的page1,为$parsed第一个变量,shift之后,数组为array("article=buildawebsite")
- $page = array_shift($parsed);
- //剩下的为GET变量,把它们解析出来
- $getVars = array();
- foreach ($parsed as $argument)
- {
- //用"="分隔字符串,左边为变量,右边为值
- list($variable , $value) = split('=' , $argument);
- $getVars[$variable] = $value;
- }
- //这是测试语句,一会儿会删除
- print "The page your requested is '$page'";
- print '
'; - $vars = print_r($getVars, TRUE);
- print "The following GET vars were passed to the page:
"
.$vars."";
- /**
- * 定义文档路径
- */
- define("SERVER_ROOT", dirname(__FILE__));
- define('SITE_ROOT' , 'http://你的域名.com');
- /**
- * 引入router.php
- */
- require_once(SERVER_ROOT . '/controllers/' . 'router.php');
- ?>
- http://你的域名.com/index.php?news&article=howtobuildaframework
- The page you requested is 'news'
- The following GET vars were passed to the page:
- Array
- (
- [article] => howtobuildaframework
- )
如果没有上述输出,请检查你的服务器配置是否正确,并检查代码是否有错误。现在来让我们添加一个页面到我们的网站里,这样就可以让router.php来产生一个页面,而不是直接输出上面的信息。
创建一个控制器(controller)在controllers文件夹里新建一个文件名为“news.php",定义如下的类:[php] view plain copy
- <?php
- /**
- * 这个文件处理文章的查询,并提供文章
- */
- class News_Controller
- {
- /**
- * $template变量会保存与此控制器相关的"view(视图)"的文件名,不包括.php后缀
- */
- public $template = 'news';
- /**
- * 此方法为route.php默认调用
- *
- * @param array $getVars 传入到index.php的GET变量数组
- */
- public function main(array $getVars)
- {
- //测试代码,以后会删除
- print "We are in news!";
- print '
'; - $vars = print_r($getVars, TRUE);
- (
- "The following GET vars were passed to this controller:" .
- "
"
.$vars."" - );
- }
- }
</i
内容总结
以上是互联网集市为您收集整理的开发自个儿的PHPMVC框架(一)全部内容,希望文章能够帮你解决开发自个儿的PHPMVC框架(一)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。