自己也接触了些框架ThinkPHP,xiuno,想自己去写个简单的框架,但是感觉无从下手,求大神建议建议
看一下CI的源码,比较清晰简单,看完就差不多知道怎么写了
首先,你的思路是严重错误的。你写框架的目的为的是什么?重复造轮子吗?还是。。。。。
你应该做的是先精通1-2个主流的开源框架,然后在你觉得这个框架对于你们团队做项目时有哪些需要改进的或者需要增加的功能。如果这个需求足够强烈,你就以你精通的这两个框架为蓝本,进行重构,而不是从0开始。否则你开发出来的就是一个废框架,一个框架要成熟至少需要3-5的时间,通过至少5-10个项目的锤炼,磨合,再重构才能成为一个基本能用的框架。
首先需要理解,框架不是给自己做的,框架是给团队用的。用框架的目的是规范开发让项目更容易被维护与管理。因此要从团队协作工作流优化的角度去设计。
去找个小型框架,用完所有的功能以后,想下这些功能是怎么实现
https://github.com/lloydzhou/router
可以看看,算不上框架,只是个路由控制器,很精炼
如果你的目的是“做个东西”,那么更容易下手的应该是写个博客程序
- 没有业务空写框架是需要大量经验做基础(知道各种不同项目的异同点,开发的痛点),而博客程序是实实在在的业务
- 博客业务的弹性十足,可以从非常小开始几乎无限做大做复杂。而且可以涉及一个web的几乎所有方面。
- 博客自用自己部署上线,至少有1个管理用户(自己)和若干游客。而写框架的话,还是绕不过“项目没人用”的尴尬
如果还是觉得就想写框架的话,老风格的LitPHP只有289行代码,有完整的文档和几乎完整的教程,应该有参考价值
嗯,基于Composer的Aether虽然因为命名空间和依赖注入代码行数多了一些,但因为路由和HTTP封装都是依赖,本体的逻辑反而更少,也可以看看,因为太简单所以文档一直懒得写……
作为Lit和Aether的共同点也是建议:不要内置ORM,不要内置模版引擎,但可以留下方便对接的接入机制,less is more
传统的框架是先分析请求,解析出来对应的控制器和action,在这个模型上做扩展。可以看下我的框架.http://www.crossphp.com
推荐阅读系列文章:利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备 该系列文章发表在 Segmentfault 博客上。
另外这个系列教程的示例代码已经演化成为一个成熟的轻量级 PHP 框架 TinyLara http://tinylara.com/。