demon认为一个优秀的框架并不是完成仅有的几个业务流,它应该是可扩充的,
是富有的,是集合,是离散。简单说它是万物的矛盾体,既游离又聚合。
体积切入:
备注:以上都是删除不必要的文件比如doc,test等文件后的最小体积
粗略的认为:
国内框架普遍比较小,国外普遍比较大-。。-在这里不能简单的认为体积小为好。
立即学习“PHP免费学习笔记(深入)”;
左边是thinkphp 的目录结构,qeephp
粗看qeephp的目录结构,cakephp
cake的目录很有意思:zend
zend不得不用缩略图了,symfony
symfony 的结构也相对清晰,总结:
评判标准:
1。目录层次是否清晰
2。目录传达的意思和其内在的类是否一致‘
3。目录结构一致性
从目录上来说zend>symfony>qeephp>cakephp>thinkphp
thinkphp

核心core类图,我们可以看到单根继承,从base派生。think中几乎所有的类都是从base上继承

util的类图,看都是从base上下来。我用一个简单的层次关系来描述thinkphp的结构
以base为中心,向外辐射的结构。
qeephp

看在ea中根的类图就一个q,多舒服,并且在其他类中,他并没有为了模式而模式。
看图:

看到吗,没有任何关系的单类,并且引如context的类,管理应用程序上下文,这是个很好的设计思想。因该是借鉴symfony的吧。后面会分析。
qeephp的类层次,可以说是游离的,分散的。
symfony
类图生成就用了8分钟,可以见得其庞大
去掉orm层的插件(symfony的mvc,m由外挂插件支持,propel或者doctince)
应用插件的机制symfony可以灵活的更改m。

一样是没有关联的单类,通过派生的方式实现对不同配置文件的读取。
symfony在很多时候都是运用了派生。其配置的驱动由sfcontext来统一驱动,sfconfig统一管理。很好的架构,单一职责,让多个类在sfcontext的驱动下,完成mvc的业务流。
而sfcontext所在的位置为util,基础套间,也就是说,如果不需要运行mvc模式,那只需要不调用sfcontext的dispatcher就行鸟,创造一个运行上下文,mvc还是命令行模式,取决于你调用的方法。
幽雅简单,不乱。
一个context类管理了所有mvc下需要用到的组件。

zend
同样的幽雅简单,也是用一个上下文来管理一切。
zend比较大,图就不发了。
cakephp
cakephp每什么好说的。实在太弱小了。demon把它归类到thinkphp,qeephp,cakephp一档去。
时间紧迫,用了3小时才整出初步的对比。当然最适合自己的就是最好的。
symfony,zend适合demon,那么各位看客就自己拿捏吧。
总结:
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号