【问题标题】:PHP Frameworks: Help Me Understand Common StatementsPHP 框架:帮助我理解常用语句
【发布时间】:2011-12-20 12:49:03
【问题描述】:

我一直在阅读几个 PHP 框架,并将我的候选者减少到 CodeIgniter 和 Symfony(我知道还有更多)。强烈倾向于 CodeIgniter,但尚未 100% 做出决定。

我不是在寻找一般性的“C​​odeIgniter vs Symfony”讨论。

在比较中不断出现一件事:人们说 Symfony 适合“高级”编码人员和“更大”网站; CodeIgniter 适用于“初学者”编码人员和“小型”网站。但我还没有看到任何技术证明。我所看到的关于 CodeIgniter 的一切感觉都是正确的。

任何人都可以从结构和技术上解释人们将这些陈述建立在什么基础上吗?

我想尽我所能去理解。一旦做出决定,我想将注意力集中在一个框架上。

谢谢, 马修

【问题讨论】:

    标签: codeigniter frameworks symfony


    【解决方案1】:

    CodeIgniter 和 Symfony(版本 1 和 2)之间最大的技术区别是 Symfony 更容易扩展。 Symfony2 尤其如此。您可以使用自定义代码或其他库中的代码替换您认为合适的框架的整个部分。您甚至可以从 Symfony2 中获取任意数量的核心组件,并在其之上构建您自己的框架。但是,重要的是要注意,因为 Symfony 非常“先进”,所以它的学习曲线更高。

    这是我的看法:当您有一个属于 CodeIgniter 旨在解决的问题类别的小型(ish)项目时,CodeIgniter 非常棒。但是,当您想以 您的 方式而不是 CodeIgniter 的方式来做某事时,您将不得不与框架作斗争,这永远不会有趣。

    另一方面,如果您正在从事 Symfony2 项目并想按照自己的方式做事,那么您可以。它不一定很快,但它是可能的。对我来说,这是最重要的——你需要能够让框架做你想做的事情。

    如果您有时间,请阅读 Symfony docscookbook - 他们应该让您了解 Symfony 的能力以及如何自定义和扩展它。

    我看到的关于 CodeIgniter 的一切都感觉不错。

    然后使用 CodeIgniter。最重要的是您对框架/工具集感到满意。如果您完成一个项目并发现它缺少功能,您可以随时查看其他框架。

    【讨论】:

    • “但是当你想按照自己的方式而不是 CodeIgniter 的方式做某事时,你将不得不与框架作斗争” - 你能详细说明一下吗? Afaik CI 是限制最少的框架之一。
    • @stef 当你真的希望框架以不同的方式处理某些事情时,你会遇到一个障碍,试图让它改变。这在较小的“更快”的框架中很常见。它们往往比 Symfony 和 ZF 更线性。在 Symfony 和 ZF 中,您可以更轻松地替换框架的内部工作。
    • 感谢您的出色回复。我又花了几天时间认真阅读和重新阅读 Symfony 和 CodeIgniter 中的文档。从文档来看,我必须说这两个项目都很出色。我仍在努力更好地理解“更大”与“更小”项目的整个问题。我不得不承认,我仍然找不到任何明确的(对我而言)解释为什么一个框架或另一个框架更适合“更大”的项目。为了希望理解这一点,我接下来要做的是指定站点元素,然后看看它在 CodeIgniter 与 Symfony 中是如何完成的。
    • 乐于助人。为了快速阐述,更可扩展的框架更适合更大的项目,因为与更小或更简单的项目相比,在复杂项目中更频繁地需要自定义框架。但是您对网站规格进行比较的想法是一个好主意,它肯定会帮助您做出决定。祝你好运!
    【解决方案2】:

    我建议在没有框架的情况下开始。如果您已经编程了一段时间,并且对 MVC 之类的概念以及您可能以这种模式实现代码的原因感到满意,那么框架开始变得更有意义。

    框架适用于有很多程序员的大型项目,并且您需要一种一致的方法来构建应用程序层,例如 MVC。该框架可能会为您提供一些对象管理机制和一致的方式来构建应用程序事件(控制器)并将视图逻辑与模型逻辑分开。

    我的 PHP 应用程序更小,所以我没有使用任何框架。当我过去在 Coldfusion 中编写大型应用程序时,我使用了 MachII、Model-glue、Fusebox 和 ColdBox。每个人都擅长某事,每个人都促进了一致性,但每个人都有很多开销,而且经常觉得它妨碍了。我看到一些开发人员因为框架而陷入困境。 在我没有使用任何 CF 框架构建较小的应用程序之前,我没有开始使用任何 CF 框架。

    如果您更喜欢 CodeIgniter,无论出于何种原因,请选择它。

    【讨论】:

    • 我花了很多时间学习 PHP,而且我很擅长。但我喜欢框架如何帮助一些数据库连接,尤其是它们如何内置一些关键的安全元素。
    【解决方案3】:

    CodeIgniter,因为它具有温和的学习曲线和出色的文档。如果您觉得自己的 CI 超出了您可能永远不会这样做的程度,请尝试使用其他框架。

    【讨论】:

      猜你喜欢
      • 2011-03-25
      • 2011-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多