【问题标题】:Should I begin learning PHP Framework? [closed]我应该开始学习 PHP 框架吗? [关闭]
【发布时间】:2011-09-09 04:46:55
【问题描述】:

我很早就了解 PHP 基础知识,函数式编程。但是今年,在我的第二学期,我学习了 Java 的面向对象编程。所以我想将我的 OOP 知识应用到 PHP 中。但我发现很难想到任何体面的利用。它不像在 Java 中一切都是对象。我发现用旧方式连接数据库、编写一些简单的日志记录或注册函数等更容易。

所有这些例子http://php.net/manual/en/language.oop5.php 只是让我了解语法,而不是使用它的方法。

于是我开始思考。也许是因为我想在没有任何Framework的情况下应用OOP,没有它就没有用?如果是这样 - 是否有任何易于学习的框架建议?

【问题讨论】:

  • 关于数据库:看看 PDO

标签: php oop frameworks


【解决方案1】:

OOP 是一种用于将代码组织成有意义、可重用的实体的方法,它并不能单独回答“如何最好地组织代码以创建 Web 应用程序”的问题。

大多数 Web 框架都使用模型-视图-控制器架构 (MVC) 以及 OOP。为了了解 Web 框架的工作原理,我建议您也熟悉 MVC(有关起点,请参阅 "Coding Horror: Understanding Model-View-Controller"

此外,无论任何框架,在创建 Web 应用程序时了解一些基本概念都至关重要。至少要熟悉会话的工作原理 (http://www.php.net/manual/en/book.session.php),以及如何访问数据库(PDO 用于通用数据库连接,MySQL 用于 MySQL 特定绑定等)。

至于选择什么网络框架,选项很多。因此,请考虑以下指针作为参考:

  • Yii 框架具有非常简洁的基于 OOP 的设计 (http://www.yiiframework.com/)
  • 另一个流行的面向对象的 PHP 框架是 CakePHP (http://cakephp.org/)
  • 对于更轻量级且开销更少的框架,请考虑 CodeIgniter (http://codeigniter.com/)
  • 事实上的 PHP 网络框架是 Zend (http://framework.zend.com/)。它庞大、全面、得到很好的支持,但在轻便旅行时并不总是完美的伴侣。
  • 另请注意,如果您根据 MVC 组织代码,您可能会发现自己在完全不使用任何框架时最舒服

另请注意,与 Java 不同,PHP 中的面向对象功能在其版本 4 和 5 中逐渐添加。因此,许多为早期版本的 PHP 设计的 Web 框架可能无法为您提供像您一样干净的面向对象设计可能想要。因此,在选择框架时,请考虑您是选择向后兼容(PHP4 支持)还是在框架中寻求干净、面向对象的设计(主要需要 PHP5)。

【讨论】:

  • 很高兴看到一个答案而不推荐您个人最喜欢的框架。 +1 :)
  • 谢谢 :) 我还不得不说,PHP 的最佳解决方案常常是根本不使用任何框架...
  • 每当我觉得一个成熟的框架有点矫枉过正时,我都会使用silex-project.org 这是一个很棒的PHP“微框架”。 :)
  • 另外,在学习如何以“框架方式”做某事之前,我会向任何人推荐它是如何在低级细节上工作的。我基本上是指会话、cookie、http 标头等概念。
  • 还需要注意的是,PHP 对类和对象的实现有点受限,有时甚至出乎意料(例如,父类怎么可能在不知道子类有这样的方法的情况下调用子类的方法,即, 如果方法既没有在父类本身中定义,也没有在其父类或接口中定义)。
【解决方案2】:

OOP 在框架之外有它的用途,你不能拿苹果和橘子比较。

目前最受人尊敬的框架都是用 OOP 编写的。因此,尝试使用一个这样的框架来查看 OOP 的用例,然后从该框架中学习(使用调试器逐步了解框架的内部工作原理)。

如果你真的想成为专业人士,我会向你推荐两件事:

  • Zend Framework - 不容易学,但它会告诉你从下一点开始失去的东西:
  • 一本关于 design patterns 的书 - 非常非常重要

关于数据库:现代 PHP 代码应该使用PDO

该框架只会向您展示设计模式的用法以及如何组织您的代码,因此您将为其培养“常识”。

在您通过了这一点之后,您将能够在没有框架的情况下创造自己的 OOP 世界(如果确实需要,尽管框架可以让您有时间真正进行创新)。

【讨论】:

    【解决方案3】:

    您无需学习任何 PHP 框架即可开始应用 OOP 原则。您可以查看此fine 答案以查看一些没有任何框架的 OOP 应用程序。

    学习一个框架绝对是一个不错的选择,因为那时你可以使用很多现成的组件。现在有很多 PHP 框架。您可以查看 CakePHP、Zend(基于组件)、YII、Symphony(雅虎使用它)、CodeIgniter 等。

    希望这会有所帮助。

    【讨论】:

      【解决方案4】:

      首先,你不需要一个框架来利用 PHP 中的 OO 风格的编程;事实上,PHP 有许多使用面向对象方法的核心类。例如看看PDOSPL

      不管怎样,关于框架,有各种基于 OOP 的框架,大多数都遵循MVC 模式。您可能想要研究的一些流行框架:

      Zend 框架非常广泛,但学习曲线可能相当陡峭,但绝对值得努力。如果你想要一个好的入门 MVC 框架,我可以推荐 CodeIgniter;它非常轻巧且易于使用。不幸的是,我对 Symfony 或 CakePHP(或其他 MVC 框架)没有第一手经验。

      【讨论】:

        【解决方案5】:

        你应该使用框架。如果您这样做,您的代码将更容易被其他开发人员编辑。

        Code Igniter 非常简单和基本,但您可以查看 Zend、Yii、Symphony 等。

        【讨论】:

          【解决方案6】:

          我推荐你从 Codeigniter 框架入手

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-07-17
            • 2022-01-05
            • 1970-01-01
            • 2017-03-03
            • 2021-01-21
            相关资源
            最近更新 更多