【问题标题】:Which PHP framework should I use for this project?我应该为这个项目使用哪个 PHP 框架?
【发布时间】:2010-10-05 17:08:31
【问题描述】:

我已经在 SO 上准备了很多关于 framework1 与 framework2 的帖子,但似乎很多个人意见都是片面的。根据以下内容,有人可以告诉我哪个框架最适合我的需求吗?

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

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

如果您能告诉我您认为哪种框架最适合这些需求,以及为什么这会非常有帮助!

【问题讨论】:

标签: php


【解决方案1】:

我将在这里对我的小框架概览表进行垃圾邮件广告。这张简单的表格回答了您的一些技术要点:
http://matrix.include-once.org/framework/simple
使用详细信息/功能视图来挑选您的选项。

  • 即使是大型框架,RSS 也不是标准功能,请使用 PEAR 库
  • 模板:所有框架都使用它们
  • 插件:取决于您对插件的概念,不过大多数框架都是可扩展的
  • 寻找“ORM”
  • 很棒的文档:这将限制您使用 codeigniter 或 cakephp
  • 不需要命令行访问:除了 symfony+cake,很少有人这样做
  • 文件上传:这不是标准功能,但我只是混合和匹配一个库
  • 可自定义的访问级别:几乎所有框架都带有权限系统
  • 对 jQuery 的支持:这令人惊讶。 Prototype 看起来很强大,只有一半的框架默认使用 jQuery

【讨论】:

【解决方案2】:

CakePHP 数据库查询不一定是可怕的。 (不过,我记得我最初的几个项目在数据库上肯定很难)

通过对数据进行正确的优化、规范化/反规范化,并在各处进行一些调整(想到持久模型),您可以使用 CakePHP 完成您所询问的一切,并保持数据库负载最低限度。

也就是说,如果你真的想转行,我会选择Zend Framework

Symfony 臃肿,(是的,粉丝们,这仍然是事实)。

Codeigniter 是超轻量级的,但您需要做更多的工作才能完成列出的要求。我已经开发了两个 codeigniter 应用程序,它们都相对简单,并且与使用 CakePHP 相比,它们都花费了两倍的工作量/两倍的新代码量。

【讨论】:

    【解决方案3】:

    当您谈论框架时,会出现很多宗教狂热。但是看看Fat-Free Framework 的文档。它可能会引起您的幻想和要求。

    【讨论】:

      【解决方案4】:

      在我回答之前,让我证明我已获得 Zend 认证,是 CodeIgniter 的频繁用户,也是 Symfony 的日常用户(和仇恨者)。

      Zend 的设置,特别是如果您正在创建一个中小型站点,可能会很丑陋。尤其是使用数据映射器策略,您正在谈论仅用于模型设置的一千行或更多行代码。 CodeIgniter 在设置方面要好得多,但仍然不是微不足道的。

      命令行免费--本质上-- 淘汰 Zend。这是可行的,但并不有趣(参见上面的数千行代码) CodeIgniter 上的内置用户身份验证不如 Zend 好,也许这是一个严重的打击......绝对没有模板。由于添加了 /view /edit 等,Symfony 完全完成了。

      不想告诉你,但似乎所有这些框架的许多用户都不是以英语为母语的人。忘掉 Symfony,它似乎完全是基于东欧的。我不想成为 Zend Framework 的新手,面对所有竞争的 tuts 以及他们对一些半复杂概念的假设。 Zend 的培训费用高昂且内容丰富是有原因的……再说一次,CodeIgniter 并不可怕,但仍然令人沮丧。

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

      【讨论】:

        猜你喜欢
        • 2010-12-28
        • 2020-10-31
        • 2011-06-13
        • 1970-01-01
        • 2022-08-18
        • 2011-06-25
        • 1970-01-01
        • 2012-01-30
        • 1970-01-01
        相关资源
        最近更新 更多