我应该开始学习PHP框架吗


Should I begin learning PHP Framework?

我以前很早就知道PHP基础知识和函数编程。但今年,在我的第二学期,我学习了Java面向对象编程。所以我想把OOP的知识应用到PHP中。但我发现很难想出任何像样的利用方式。这不像在Java中,所有东西都是一个对象。我认为以旧的方式连接数据库更容易,编写一些简单的日志记录或注册功能等。

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

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

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

大多数web框架都使用模型-视图-控制器体系结构(MVC)以及OOP。为了理解web框架是如何工作的,我建议您也熟悉MVC(有关起点,请参阅"编码恐怖:理解模型视图控制器")

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

至于选择什么样的网络框架,有很多选择。因此,考虑以下指针作为信息:

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

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

OOP在框架之外使用,不能将苹果与橙子进行比较。

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

如果你真的想成为一名职业选手,我建议你做两件事:

  • Zend框架-不容易学习,但它将向您展示从下一点开始丢失的东西:
  • 一本关于设计模式的书-非常非常重要

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

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

在你通过了这一点之后,你将能够在没有框架的情况下创造自己的OOP世界(如果真的需要的话,尽管框架给了你真正创新的时间)。

您不需要学习任何PHP框架就可以开始应用OOP原理。你可以看看这个好的答案,看看OOP在没有任何框架的情况下的一些应用。

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

希望这能有所帮助。

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

无论如何,关于框架,有各种基于OOP的框架,大多数都遵循MVC模式。你可能想研究的一些流行框架:

  • Zend框架
  • CodeIgniter
  • Symfony
  • CakePHP

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

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

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

我建议您CodeIgnitor框架从

开始