我应该为这个项目使用哪个PHP框架?

时间:2010-10-05 17:08:32

标签: php

我已经准备好了很多关于framework1 vs framework2的帖子,但似乎很多个人意见都是单方面的。基于以下内容,有人可以告诉我哪个框架对我的需求是理想的吗?

  • 构建功能丰富的API,其他网站和设备可以使用该API来使用网站功能并访问其内容。
  • RSS使用XML和JSON进行jQuery交互。
  • 能够使用可自定义的布局/模板。
  • 使用插件,这样我就不需要重复代码了。
  • 数据库查询关系。
  • GREAT文档。
  • 积极支持。
  • 不要求命令行访问。
  • 易于管理文件上传和移动文件,因此只有特定用户才能下载它们。
  • 可自定义的访问级别,因此用户可以根据他们正在查看的项目/部分具有不同的访问级别。
  • 低开销使用。
  • SEO网址不需要网址中的'/ view','/ edit','/ add'(取决于您要执行的操作。)
  • 支持jQuery

我见过的一些框架支持其中一些但并非全部。我目前正在将CakePHP用于一个项目,但不认为它符合我的需求,因为数据库查询可能会变得可怕。我听过一些关于CodeIgnitor的内容,但它似乎并不容易使用模板(也许我只是误解了我读的内容)。

如果你能告诉我你认为哪种框架适合这些需求以及为什么这会非常有用呢!

4 个答案:

答案 0 :(得分:2)

CakePHP数据库查询不一定非常可怕。 (虽然,我记得我的前几个项目对数据库来说肯定很难)

通过正确的优化,数据的规范化/反规范化以及此处和那里的一些调整(想到持久性模型),您可以完成使用CakePHP查询的所有内容,并将数据库负载保持在最低限度。

那就是说,如果你真的想转向别的东西,我会选择Zend Framework

Symfony臃肿,(是的,粉丝,这仍然是真的)。

Codeigniter是超轻量级的,但您将完成更多的工作来完成您列出的要求。我已经启动了两个codeigniter应用程序,两者都相对简单,并且两次工作/新代码量的两倍都比我说的那样,CakePHP。

答案 1 :(得分:2)

当你谈论框架时,很多宗教狂热。但请查看Fat-Free Framework的文档。它可能会抓住你的幻想和要求。

答案 2 :(得分:2)

我只是在这里垃圾化我的小框架概述表。简单的表格回答了您的一些技术要点:
http://matrix.include-once.org/framework/simple
使用详细信息/功能视图来挑选您的选项。

  • RSS即使使用大型框架也不是标准功能,使用PEAR库
  • templates:所有框架都使用它们
  • 插件:取决于你的插件概念,大多数框架都是可扩展的
  • 寻找“ORM”
  • GREAT文档:这会限制你使用codeigniter或cakephp
  • 不要求命令行访问:symfony + cake除外,很少有
  • 文件上传:这不是标准功能,但我只是混合搭配图书馆
  • 可自定义的访问级别:几乎所有框架都带有权限系统
  • 支持jQuery:这是令人惊讶的。原型似乎非常强大,默认情况下只有一半的框架使用jQuery

答案 3 :(得分:1)

在我回答之前,让我证明我已经通过了Zend,CodeIgniter的常用用户以及Symfony的日常用户(和仇恨者)的认证。

Zend的设置,特别是如果你正在做一个中小型网站可能会很难看。特别是使用数据映射器策略,您只需要为模型设置说一千或更多行代码。 CodeIgniter在设置方面要好得多,但仍然不是无足轻重的。

命令行免费 - 最终 - 击败Zend。这是可行的,但不是很有趣(见上面几千行代码)内置的用户身份验证在CodeIgniter上并不像Zend那么好,也许这是一个严重的敲门......绝对没有模板。由于添加了/ view / edit等,Symfony已经完成了。

讨厌打破它,但似乎所有这些框架的许多用户都不是以英语为母语的人。忘记Symfony,似乎完全是东欧的。我不想成为Zend Framework的一个新手到用户,所有的竞争对手都有他们对一些半复杂概念的假设。有一个原因,Zend的培训费用昂贵而且充实....再次,CodeIgniter并不可怕,但仍然令人沮丧。

仅仅因为我们广泛使用Jquery并希望避免大量的黑客攻击,我的公司完全抛弃了这些框架。现在设置是有目的的,而不是框架...只需构建一个DAL,汇编类,构建视图,并完成。已建立的功能被重新用作我们实际知道和理解的“插件”。大多数交互都是基于Jquery的Ajax(有时候是XAJAX),它实际上并没有充分利用框架 - 并且与Symfony进行斗争。对于那些认为框架强制MVC的人,我有一个开发副总裁,他做得很好,谢谢。也许这对你来说不是正确的答案,但我们很高兴我们走了这条路。它节省了数周的文档搜索。