我应该开始学习PHP Framework吗?

时间:2011-06-06 10:39:29

标签: php oop frameworks

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

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

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

6 个答案:

答案 0 :(得分:9)

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特定的绑定等。 )。

至于选择哪种Web框架,选项很多。因此,请将以下指针视为提供信息:

  • 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)。

答案 1 :(得分:2)

OOP在框架之外使用它,你无法将苹果与橙子进行比较。

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

如果你真的想成为职业选手,我会推荐你​​两件事:

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

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

在你通过这一点之后,你将能够创建自己的OOP世界,没有框架(如果真的需要,虽然框架为你提供了实际创新的时间)。

答案 2 :(得分:1)

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

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

希望这有帮助。

答案 3 :(得分:1)

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

无论如何,有关框架,有各种基于OOP的框架,大多数遵循MVC模式。您可能希望了解一些流行的框架:

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

答案 4 :(得分:-1)

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

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

答案 5 :(得分:-2)

我建议您使用Codeigniter框架开始