【问题标题】:What's a PHP framework and what's a good one? [closed]什么是 PHP 框架,什么是好的框架? [关闭]
【发布时间】:2008-11-19 07:29:54
【问题描述】:

我正在运行一个关于 PHP 框架的网站,但我找不到它的确切定义,我一直在思考一个问题,如何制作一个好的 PHP 框架?特征?手动的?效率?还是什么?

【问题讨论】:

    标签: php frameworks


    【解决方案1】:

    询问编程论坛什么是好的框架就像询问汽车论坛什么是好车一样。意见千差万别,在 95% 的情况下,你选择什么并不重要,只要它是积极开发的。您的大部分回复将基于宗教而非主观比较。 :)

    【讨论】:

    • 我完全不同意。关于不同的框架有很多好的因素会引导你实现你的愿望!例如框架的重量或速度有多快,在大型项目中运行需要多少 CPU?等等。当然还有一些技术属性是任何框架都没有的,我认为我不需要举例:)
    • 这是我回复的一部分。如果不知道具体项目需要在简单性、速度和功能之间进行什么样的权衡,就不能说“什么是好的框架”。说一个框架非常好是没有用的,因为没有一个框架同样适合所有用例。
    【解决方案2】:

    本质上,框架是您可以选择在其上构建程序的结构。它可以让您连接到许多不同的 API 并确定您自己的应用程序的结构。我使用 Zend 框架。它不是最容易学习的,但肯定拥有出色应用程序所需的一切。我建议通过网站上的快速入门指南来了解这一点。它使用模型-视图-控制器,这在我看来是必不可少的。配置完成后,一切都会变得非常简单!

    其他框架包括 CodeIgniter 和 Symfony。有些人喜欢 CodeIgniter,因为它占用的空间更小。这都是偏好问题。无论您选择哪个,请务必使用网站上的文档,因为了解如何最好地使用它至关重要。此外,不要害怕每隔一段时间就在代码中达到顶峰,只是为了更好地了解事情的运作方式。

    【讨论】:

      【解决方案3】:

      框架提供了可以让您更快/更干净地开发的脚手架。它们通常为 UI 组件和底层数据库访问提供工具集。

      对于(非常)小的项目,框架可能有点矫枉过正,但通常情况下,为您提供大量可重用的代码会很有帮助。

      一些著名的 PHP 框架: Zend Framework CodeIgniter Symfony CakePHP Mojavi

      A comparison chart. A more detailed review site.

      【讨论】:

      • 并非所有框架都使用脚手架,即。代码生成。我认为至少 Zend 和 CI 没有这样做。
      【解决方案4】:

      在我看来,PHP 框架是帮助您开发 Web 应用程序的类的集合。

      在我的公司,我们使用 Zend 框架。我不得不说,开始使用这个框架非常困难,但如果你知道如何使用 API 和参考指南,你就会拥有一个很棒的框架。这也很有趣,因为他们有 Zend 人员参与该项目,因此他们可以使用这些内部技巧并获得一些其他人无法获得的性能提升。

      ZF 与其他公司的不同之处还在于能够轻松创建 MVC 程序。

      【讨论】:

      • “这样他们就可以使用这些内部技巧并获得一些其他人无法获得的性能提升。” - 那是胡说。 Zend Framework 是用纯 PHP 编写的,因此它没有比其他人更多的可用功能。如何使用 PHP 是一个不同的问题。
      【解决方案5】:

      关于框架有很多话要说——这里有好帖子。但是请注意,它们并不总是最好的解决方案。您可能更愿意避免使用它们的原因是

      1. 由于代码库的大小,它们往往很慢(例如,我看到 Zend 引用的简单 PHP 嵌入页面交付速度慢 10 倍的数据 - 诚然是较大的数据之一)。

      2. 在它们打算使用的“域”之外,它们可能是不灵活的。扩展一个框架来做一些非标准的事情可能比从头开始编码要困难得多。

      3. 需要牺牲一些模块化。使用更简单的模板/控制文件系统(例如TinyButStrong)的优点是每个页面都是一个不同的单元,这自然会使您的系统更容易进行单元测试和健壮。

      4. 它们往往容易受到版本控制问题的影响。开发你的第一个非常好,但是在你开发了十几个网站之后,你很可能会发现你一直在使用该框架的三个或四个发布版本,并且你有一个混杂的代码库来使用 - 并同步所有内容需要您可能没有的时间。

      以上都不是反对使用框架的决定性论据,在许多(大多数?)情况下,优势会得到更高的分数,但你不应该在没有首先考虑你的需求和最佳解决方案的情况下达到一个针对每个特定问题。

      【讨论】:

      • 他们是否更新了框架(例如 Zend)以使用新的 PHP 版本而不需要我更改我的代码?除了用新框架替换框架)...?
      • 如果你运行两个网站(一个用框架,一个用纯php编码),你真的能看到速度慢吗?真的有那么多吗?还是我们谈论的是 0.0001 秒?
      • TBH 现在我在很大程度上改变了主意,我很少会在没有框架的情况下编写任何代码,然后只为最简单的任务编写代码。你是对的,这些天开销真的很小。话虽如此,如果速度至关重要,我仍然会使用 CodeIgniter 而不是(在 95% 的情况下)优越的 Laravel
      【解决方案6】:

      PHP 框架是一个库,它通过隐藏 HTTP 协议的一些复杂性或添加一些有用的功能,使网站开发人员的生活更轻松。 例如CakePHP 实现了所谓的MVC,这使开发人员认为比 HTTP 更高。这是我到目前为止所学到的。

      【讨论】:

      • 它还将您链接到 PHP4。亲爱的主不。 D:
      • 现在没有了。我知道我正在回复一个两年前的帖子,但我只是确保阅读这篇文章以了解框架的人(例如:我)不会认为情况仍然如此。 :)
      猜你喜欢
      • 2012-03-16
      • 2017-01-04
      • 2013-04-20
      • 2016-03-22
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      • 2016-12-26
      相关资源
      最近更新 更多