自己动手写框架(一)

PHP框架接触有一段时间,主要是Kohana和Thinkphp。这两个框架各有各的特色,总体来说Kohana还是相对来说比较简单,但是国内资料较少。

简单的,我把我的这个框架命名为Demo.

框架搭建第一步,总体目录规划:

目录  APP(应用)->TEM (主题) -> SYS (系统)

||-------Application  应用
   |---classes

      Controller

      Models

   

   |---views
      
||  ---Template   主题
   |---classes

      Controller

      Models

   

   |---views

      

||  ---System    核心文件
   |---controller
   |---config
   |---orm 其他扩展的功能类
||  ---index.php    入口文件

应用结构

为什么要把model和controller放在classes下?

  在程序中,你一定要把所有的文件都require进来。但是如果再不同的目录下定义了一个相同名称的类名就会报错--Fatal error:
Cannot redeclare class。

这样是为了方便处理。

先来处理一下这个类如何实现:

自己动手写框架(一)

时间: 2024-10-28 19:36:57

自己动手写框架(一)的相关文章

《自己动手写框架8》:高屋建瓴,理念先行

<史记·高祖本纪>:"地势便利,其以下兵于诸侯,譬犹居高屋之上建瓴水也."这里用到了高屋建瓴这个词.意思是把瓶子里的水从高层顶上倾倒.比喻居高临下,不可阻遏的形势.现指对事物把握全面,了解透彻.此典故于汉高祖刘邦欲杀功臣韩信,大夫田肯进言到"陛下牢牢地控制着三秦(关中),陛下利用这雄险的地势,来控制.驾御诸侯,就如从高高的屋脊上把水从瓶子里倒下去."以此来表彰韩信的功劳,于是,刘邦赦免了韩信,只是将他降为淮阴侯. 同样,设计企业框架,也要对事物把握全面,

《自己动手写框架4》:分布式锁的简单实现

分布式锁在分布式应用当中是要经常用到的,主要是解决分布式资源访问冲突的问题.  一开始考虑采用ReentrantLock来实现,但是实际上去实现的时候,是有问题的,ReentrantLock的lock和unlock要求必须是在同一线程进行,而分布式应用中,lock和unlock是两次不相关的请求,因此肯定不是同一线程,因此导致无法使用ReentrantLock. 接下来就考虑采用自己做个状态来进行锁状态的记录,结果发现总是死锁,仔细一看代码,能不锁死么. public synchronized

《自己动手写框架9》:理想的开源框架与设计原则

理想的开源框架?她应该是小的.简单的,满足Simple Is Beautiful?她应该是成长性好的,随着不断的扩展,她可以越来越丰满?她应该是有良好工具支持的,为什么要花时间做工具可以完成的事情呢??她应该是自组装的,也就是尽可能的脱离配置,而是用一种依赖即可用,取消依赖即消失的全自动处理模式?她应该是模块化的,所有的内容都可以被打入jar包而作为一个整体进行发布,并且能支持热部署的,可以开着车儿换轮胎的?她应该是支持水平部署的,想加服务器就加,想减服务器就减?她应该是有良好知识积累体系的,使

《自己动手写框架7》:关于框架体系与战术的思考

什么是框架? 这个问题实际上许多"做框架"的人也不明白. 框架和库的本质不同在于: 框架考虑的是机制的复用,而库主要考虑的是代码的复用 框架考虑的是在机制不变的情况下进行扩展,而库则基本不考虑扩展方面的问题 框架本身是不完整的,在大多数的情况下它自己是干不了啥事情的,而库自身是完整的,可以解决某个领域的问题. 框架是活的,通过不断的扩展与衍生,它就更加强大,而库而是死的,发布时是怎样,就是怎样. 当然,关于这两货之间的比较,还有许多个角度,但我个人觉得本质是我上面举的这些. 设计的时候

《自己动手写框架5》:生态圈的建立

曾经有人提出过一个看似天方夜谭的设想,在我们生活的地球上再造一个"迷你地球",探求人类在这个现代"南泥湾"之中自给自足,以及未来在月球或火星上建立生存空间的可能性.美国得克萨斯州的石油大王爱德华·巴斯为此憧憬不已. 既然是自己动手写框架,我这里想借鉴一下生物圈(Biosphere)这个概念来描述一下.生物圈是指地球上所有生态系统的统合整体,是地球的一个外层圈,其范围大约为海平面上下垂直约10公里.它包括地球上有生命存在和由生命过程变化和转变的空气.陆地.岩石圈和水.

《自己动手写框架3》:业务流程引擎

一般的时候,我们都采用编程式开发,编程式开发的好处非常明显:直接.高效.自由,当然其缺点也是有的,与其优点刚好相对,因为直接,所以有些变化都要进行代码上的修改:因为高效,所以一旦出问题,导致的结果也比较严重,因为自由,所以带来的修改风险也比较大.  这也就是许多大的公司都在进行流程化开发的重要原因之一,比如:上海普元,Livebos, Justep,还有许许多多知名不知名的公司都有类似的流程化开发引擎存在,通过流程化开发,增强代码的复用性,降低软件开发成本及测试成本,提升软件的可维护性及降低维护

《自己动手写框架1》:缘起

前言 自己动手写框架?第一次接触这本书的读者可能会有一些惊讶.是的,这就是写本书的缘由. 1.1  缘由 从毕业以来,我一直从事软件开发及软件管理,做过大量的项目与产品,但是还是喜欢平台软件及软件管理方面的工作.多年的业务开发及平台构建的过程中,踩了许许多多的坑,也积累了许许多多的经验. 和很多的朋友一样,在没有开发框架之前,可能我们只有一些落在纸面上的编码规范,或者说是开发约定.但不管怎么说,这些规范和约定对于我们软件开发过程还是有相当的指导与规范作用的.再后来,随着时间的推移,我们的软件代码

《自己动手写框架2》:用200行的DBF解析器来展示良好架构设计

由于工作关系,需要工作当中,需要读取DBF文件,找了一些DBF读取开源软件,要么是太过庞大,动不动就上万行,要么是功能有问题,编码,长度,总之是没有找到一个非常爽的.在万般无奈之下,我老人家怒从心头起,恶向胆边生,决定自己写一下.结果只用了不到300行代码就搞定了,当然搞定不是唯一目标,还要优雅简洁的搞定,亲们跟随我的脚步一起感受一下简洁的设计与实现吧. 在开始编码之前,先介绍一下DBF,这个DBF可是个老东西,在DOS时代就已经出现,并且风骚了相当一段时间,后来随着大型数据库的应用,它逐步没落

《开源框架那点事儿20》:自己动手写前端框架

曾经发表过一篇文章:TinyAdmin前端展现框架.其在线演示路径为:http://www.tinygroup.org/tinyadmin/.应该说有很多人还是感觉兴趣的,可是因为这个是基于SmartAdmin框架改写的,尽管我们自己买了SmartAdmin的授权,可是广大用户假设要用的时候,就会有授权相关的问题,这会大大影响一些人的使用决策--尤其是会再发行的朋友. 再一个原因是SmartAdmin初看不是不错的.可是实际用起来.里面的问题比較多.对IE8基本上能够说是不兼容,尽管我们努力进行