Thinkphp,qeephp,cakephp,zendframework,symfony 对比

346 篇文章 0 订阅

Thinkphp,qeephp,cakephp,zendframework,symfony 对比

直接插入:

demon认为一个优秀的框架并不是完成仅有的几个业务流,它应该是可扩充的,是富有的,是集合,是离散。简单说它是万物的矛盾体,既游离又聚合。

体积切入:

框架 体积

cake_1.2.2.8120 2.01MB

qeephp-2.1.2116 993KB

ThinkPHP 1.5 947KB

ZendFramework-1.7.8-minimal 16.1MB

symfony 1.2.5 11.1MB

备注:以上都是删除不必要的文件比如doc,test等文件后的最小体积

粗略的认为:

国内框架普遍比较小,国外普遍比较大-。。-在这里不能简单的认为体积小为好。

目录结构:

thinkphp

qeephp 左边是thinkphp 的目录结构,demon粗略的看了看: common下放了运行时,函数库,通用性的文件 lang估计是核心内部的语言 lib/org下是一些常用工具: date,io,net,rbac,text等 lib/think下为核心,主攻mvc流程 plugin下为适配插件 总结: 实在是太小了,一眼便看穿了全部 demon从初学者的角度来分析thinkphp的流程: 初始化加载必要的文件,common,core下的几个类, 就可以调用new app(),然后嗲用init运行了。 猜测app里实例化diapatcher然后调用类似run的方法, 开始动作routing。

粗看qeephp的目录结构,给人非常舒服,层次很清晰,

每一个文件夹对应某个功能域。

并且每个文件下都有与之对应的exception.

command命令行快捷方式

特别要指出,

extend下的behavior是在模型上捆绑行为的。

可以说是decorate模式。

在qeephp中可见运用了一些设计模式来满足可扩充性,

单一职责。

qeephp的启动方式。。一时还找不出来。

这是由于单一职责的好处。

参考了官方的文档:

看:

// 获得应用程序启动信息

$app_config =

require(dirname(__FILE__) . '/../config/boot.php');

// 根据启动信息中的设置载入 QeePHP 框架和应用程序对象

require $app_config['QEEPHP_DIR'] . '/library/q.php';

require $app_config['APP_DIR'] . '/myapp.php';

// 构造应用程序对象,并启动 MVC 模式

echo MyApp::instance($app_config)->dispatching();

很舒服。。。不过精简的还不够,特别是myapp.php和以下

MyApp::instance($app_config)->dispatching();的关系很不协调。

(我想作者的意图是想多入口的多应用程序以及部署模式,

但入口并不应该感知文件名,而是感知索引)

比如:

// 根据启动信息中的设置载入 QeePHP 框架和应用程序对象

require $app_config['QEEPHP_DIR'] . '/library/q.php';

// 获得应用程序启动信息

$app_config = qee_App::getConfiguration("myapp");

// 构造应用程序对象,并启动 MVC 模式

qee_App::createInstance($app_config)->dispatching();

如此不是更好。没有烦琐的手动载入,只要知道要运行哪个app名字就可以了

总结:

可以说qeephp从目前的目录结构看,是可以研究一下的。当然还存在一些问题。

综合看qeephp在目录结构上比thinkphp好

cakephp

cake的目录很有意思:一个空的app项目目录。

然后核心就4个cache,controller,model,view

真是mvc啊。。。

很简单,太简单,cakephp提供cli 来初始化一个基本的

mvc application。所以至于启动方式也类似于qeephp。

zend

zend不得不用缩略图了,实在太多太全太大。

zend明显的很清楚,比qeephp,symfony都清楚,并且

很全。

特点就是文件夹可以单一的完成某些任务,这使得所有

类都可以单独

剥离出来,外头的php文件是实现封装,而对应的

directory为类包含

的类,运用组合模式结合起来。

zend的启动方式不熟悉。但应该不会差。

symfony

symfony 的结构也相对清晰,但其粒度比zend更细腻。

它将controller,response,request 都分开。

但从整体行来说逊色于zend,不够全,也不够离散。

symfony的某些组件,存在一定的依赖性。

总结:

评判标准:

1。目录层次是否清晰

2。目录传达的意思和其内在的类是否一致‘

3。目录结构一致性

从目录上来说zend>symfony>qeephp>cakephp>thinkphp 类图

thinkphp

三亿文库3y.uu456.com包含各类专业文献、高等教育、中学教育、行业资料、专业论文、外语学习资料、生活休闲娱乐、应用写作文书、文学作品欣赏、实测thinkphp,qeephp,cakephp,zendframework,symfony流行框架性能 78等内容。

1 2 3

 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值