PHP的框架众多,对于哪个框架最好,哪个框架最烂,是否应该用框架,对于这些争论在论坛里面都有人争论,这里不做评价,个人觉得根据自己需求,选中最佳最适合自己MVC框架,并在开发中能够体现出敏捷开发的效果就OK了,作为一个PHPer要提高自己的对PHP和MVC的框架的认识,所以自己写一个MVC框架是很有必要的,即使不是很完善,但是自己动手写一个轻量简洁的PHP MVC框架起码对MVC的思想有一定的了解,而且经过自己后期的完善会渐渐形成一个自己熟悉的一个PHP框架。
来写一个《自己动手写PHP MVC框架》的简明教程,首先声明,教程里面的框架不是一个完善的框架,只是一种思路,当然每个人对MVC框架实现的方法肯定是有差异的,希望高手多提意见多指正,和我一样的菜鸟多讨论多交流,刚接触MVC的PHPer多学习,如果有需要该教程源码的PHPer,请留下邮箱。
首先,我们在项目中建立如下目录和文件:
myapp
|-controller 存放控制器文件
|-model 存放模型文件
|-view 存放视图文件
|-lib 存放自定义类库
|-config 存放配置文件
|–config.php 系统配置文件
|-system 系统核心目录
|-index.php 入口文件
新件的index.php为入口文件,我们这里采用单一入口,入口文件的内容很简单:
<!--?php <br ?-->/** * 应用入口文件 * @copyright Copyright(c) 2011 * @author yuansir * @version 1.0 */ require dirname(__FILE__).'/system/app.php'; require dirname(__FILE__).'/config/config.php'; Application::run($CONFIG);
入口文件主要做了2件事,第一引入系统的驱动类,第二是引入配置文件,然后运行run()方法,传入配置作为参数,具体这2个文件是什么内容,我们接下来继续看。
先看一下config/config.php文件,里面其实是一个$CONFIG变量,这个变量存放的全局的配置:
<!--?php <br ?-->/**
* 系统配置文件
* @copyright Copyright(c) 2011
* @author yuansir
* @version 1.0
*/
/*数据库配置*/
$CONFIG['system']['db'] = array(
'db_host' => 'localhost',
'db_user' => 'root',
'db_password' => '',
'db_database' => 'app',
'db_table_prefix' => 'app_',
'db_charset' => 'urf8',
'db_conn' => '', //数据库连接标识; pconn 为长久链接,默认为即时链接
);
/*自定义类库配置*/
$CONFIG['system']['lib'] = array(
'prefix' => 'my' //自定义类库的文件前缀
);
$CONFIG['system']['route'] = array(
'default_controller' => 'home', //系统默认控制器
'default_action' => 'index', //系统默认控制器
'url_type' => 1 /*定义URL的形式 1 为普通模式 index.php?c=controller&a=action&id=2
* 2 为PATHINFO index.php/controller/action/id/2(暂时不实现)
*/
);
/*缓存配置*/
$CONFIG['system']['cache'] = array(
'cache_dir' => 'cache', //缓存路径,相对于根目录
'cache_prefix' => 'cache_',//缓存文件名前缀
'cache_time' => 1800, //缓存时间默认1800秒
'cache_mode' => 2, //mode 1 为serialize ,model 2为保存为可执行文件
);
我这里有意识的定义$CONFIG['system']数组表示是系统的配置文件,当然你可以在里面定义$CONFIG['myconfig']为表示在定义的配置,以后在程序的控制器,模型,视图中来调用,这个很自由。
具体配置值代表什么意思注视很清楚了,下面的如果程序中有详细注释的我就不解释啦,呵呵
(转载请标明出处:自己动手写PHP MVC框架(一))
您好,如果有时间可以给我发一个研究一下,哈哈。谢谢!yjygaiq@163.com
OK
很想看看,谢谢
我的邮箱:baotao_88@126.com
已发送,请查收
呃,看看吧,给发份呗
已发送,请查收下
麻烦发一份到我的邮箱 :397347858@qq.com
谢谢
发给你啦
330924158@qq.com
非常感谢,我非常需要这个教材
发送了,查收
能发我一份吗?谢谢
当然ok
能发我一份吗?谢谢 359712857@qq.com
mostsun1987@163.com 谢谢,我需要这个教材…无私奉献..
ok,查收
麻烦发一份给我,sunlyliuh@163.com
谢谢
已发送,呵呵
麻烦你了,我想要一份教材 jeffzhengabc@126.com
不客气,多交流
为啥不放在网盘?
因为不是完善的,所以不方便在外面流传吧,给学框架的新手学习MVC思想
谢谢 damonmeng@163.com
好了,查收吧
muyixiaohui@qq.com 谢谢了。
给我发一份。博主。谢谢!!1029139293@qq.com
发给你了,不客气
呵呵 楼主写的很不错 能给我发一份么 现在正在研究框架的
你邮箱?
楼主,春节快乐,发个给我960352880@qq.com谢谢!
一直在想着怎么写MVC,能看到楼主的这教程太感谢了!!
还请楼主发一份给我学习学习.4766758@qq.com
发送了,请查收
我非常需要这个教材,kkhty@hotmail.com谢谢无私奉献
呵,发给你了
麻烦楼主给我发一份 我的邮箱是:813777109@qq.com
OK,请查收
357067506@qq.com谢谢
楼主你好,刚接触MVC,感觉楼主写的很好,对我很有帮助。麻烦楼主有空发我一份,谢谢!邮箱1210200225@qq.com
查收吧
麻烦楼主给我发一份 我的邮箱是:cedk@163.com
发给你了
刚刚接触MVC能发一份给我吗?邮箱:350370101@com
OK!
请楼主给我一份源码吧!
已发了
刚刚接触MVC,看到楼主的这教程很好,请楼主给我一份源码吧!
太感谢了
很精彩的一份技术文档,对于我们这些初步了解mvc的很有帮忙,但就是源码下载不了。。能否再发一份给我,最好是能修复下载链接。
谢谢。。。keheng@163.com
楼主你好,可以发份学习一下吗?
邮箱:Veidy.lei@gmail.com
楼主你好,麻烦发一份学习
邮箱:zhan_wan_xiang@163.com
谢谢了哈!
学习遇到瓶颈了,看到这个太兴奋了,谢谢博主
楼主你好!发一份给我吧!我的邮箱是qkyh1225@163.com
thinks
楼主给我也发一份源码吧~ 谢谢~!
hrg315@163.com(邮箱地址)
已经发