LAMP的天空中菜鸟总比笨鸟先飞!
分类目录
关注我
Sina Mail RSS
    PHP   MVC框架   自己动手写PHP MVC框架(一)

自己动手写PHP MVC框架(一)

PHP的框架众多,对于哪个框架最好,哪个框架最烂,是否应该用框架,对于这些争论在论坛里面都有人争论,这里不做评价,个人觉得根据自己需求,选中最佳最适合自己MVC框架,并在开发中能够体现出敏捷开发的效果就OK了,作为一个PHPer要提高自己的对PHP和MVC的框架的认识,所以自己写一个MVC框架是很有必要的,即使不是很完善,但是自己动手写一个轻量简洁的PHP MVC框架起码对MVC的思想有一定的了解,而且经过自己后期的完善会渐渐形成一个自己熟悉的一个PHP框架。

来写一个《自己动手写PHP MVC框架》的简明教程,首先声明,教程里面的框架不是一个完善的框架,只是一种思路,当然每个人对MVC框架实现的方法肯定是有差异的,希望高手多提意见多指正,和我一样的菜鸟多讨论多交流,刚接触MVC的PHPer多学习,如果有需要该教程源码的PHPer,请留下邮箱

下载 自己动手写PHP MVC框架教程源码

首先,我们在项目中建立如下目录和文件:

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框架(一))

分享文章
Twitter Button Facebook Button Weibo Button Tencent Button Qzone Button Google Buzz Button Reddit Button StumbleUpon Button Digg Button Orkut Button
54 Comments - Leave a comment
  1. liubin 说道:

    您好,如果有时间可以给我发一个研究一下,哈哈。谢谢!yjygaiq@163.com

  2. qwqw 说道:

    很想看看,谢谢
    我的邮箱:baotao_88@126.com

  3. doctor 说道:

    呃,看看吧,给发份呗

  4. ktk100 说道:

    麻烦发一份到我的邮箱 :397347858@qq.com

  5. 段天隆 说道:

    330924158@qq.com
    非常感谢,我非常需要这个教材

  6. pgp 说道:

    能发我一份吗?谢谢

  7. pgp 说道:

    能发我一份吗?谢谢 359712857@qq.com

  8. 电脑面前的雕塑 说道:

    mostsun1987@163.com 谢谢,我需要这个教材…无私奉献..

  9. liu 说道:

    麻烦发一份给我,sunlyliuh@163.com
    谢谢

  10. jeff 说道:

    麻烦你了,我想要一份教材 jeffzhengabc@126.com

  11. newjueqi 说道:

    为啥不放在网盘?

  12. xiaoxin 说道:

    给我发一份。博主。谢谢!!1029139293@qq.com

  13. dz5362 说道:

    呵呵 楼主写的很不错 能给我发一份么 现在正在研究框架的

  14. myhuo 说道:

    楼主,春节快乐,发个给我960352880@qq.com谢谢!

  15. PHP初学者 说道:

    一直在想着怎么写MVC,能看到楼主的这教程太感谢了!!
    还请楼主发一份给我学习学习.4766758@qq.com

  16. kkhty 说道:

    我非常需要这个教材,kkhty@hotmail.com谢谢无私奉献

  17. welldone 说道:

    麻烦楼主给我发一份 我的邮箱是:813777109@qq.com

  18. PHPer 说道:

    楼主你好,刚接触MVC,感觉楼主写的很好,对我很有帮助。麻烦楼主有空发我一份,谢谢!邮箱1210200225@qq.com

  19. 紫霞狼 说道:

    麻烦楼主给我发一份 我的邮箱是:cedk@163.com

  20. WUJIANWU 说道:

    刚刚接触MVC能发一份给我吗?邮箱:350370101@com

  21. prepfrit 说道:

    请楼主给我一份源码吧!

  22. cindy 说道:

    刚刚接触MVC,看到楼主的这教程很好,请楼主给我一份源码吧!
    太感谢了

  23. keheng 说道:

    很精彩的一份技术文档,对于我们这些初步了解mvc的很有帮忙,但就是源码下载不了。。能否再发一份给我,最好是能修复下载链接。
    谢谢。。。keheng@163.com

  24. HZGK 说道:

    楼主你好,可以发份学习一下吗?
    邮箱:Veidy.lei@gmail.com

  25. helloarvis 说道:

    楼主你好,麻烦发一份学习
    邮箱:zhan_wan_xiang@163.com
    谢谢了哈!

  26. 蜗牛 说道:

    学习遇到瓶颈了,看到这个太兴奋了,谢谢博主

  27. Felix 说道:

    楼主你好!发一份给我吧!我的邮箱是qkyh1225@163.com

  28. 学习中 说道:

    楼主给我也发一份源码吧~ 谢谢~!
    hrg315@163.com(邮箱地址)

Leave a comment

电子邮件地址不会被公开。 必填项已用 * 标注

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

使用新浪微博登陆