大家好!

在一个新项目上,你是否应该使用一个 PHP 框架?就此问题,我阐述一下我的个人观点,希望对你有所帮助。

首先,我对语言及其框架有一个简单的概念:一个框架必须让开发变得更加简单。每个软件都有一个目的:有效工作!这是每一个项目的主要目标,简化某些人的生活。

谈到 PHP,它是一门非常简单的语言,设计初衷就是简单和快速。如果你想要一种复杂或者充满依赖的语言,PHP 不是你最好的选择。

PHP 可以在一行代码中做许多事情,它有这个能力,因此,如果你选择的编程框架,做同样的事情需要仍需3或4行代码,还是使用原生 PHP 语言吧。但是你会问我,你选择的框架虽然只是做了同样的工作,但做得更好,使用了面向对象的编程方法,或者代码更加整洁漂亮。请记住,你的首要任务是让你的项目有效工作。当然,面向对象编程是推荐的方式,你应该使用它,它会让你的开发看起来更简单些。PHP 正朝着面向对象大步迈进,不久之后,-> 将被取代,那时一切都将变成 OO,就像:

String.length()

我想说的是,你们应该使用更简单的方式,使得开发更快更好。想要借 PHP 之力达此目的,那就选择一个能使你工作更高效的框架吧。现有的一些编程框架,难度几乎和你学习另一种编程语言差不多。对我来说,一个框架必须容易学习,短时间内能上手开发,这样你就可以用它去赚钱了。

对于 Ruby on Rails 框架,我有一些开发经验,大量 PHP 程序员转移到 RoR 的原因就是因为它很简单,仅此而已。在 RoR 上写代码就如同说话一般,使用 PHP 当然也能达到同样效果,只要你选对框架。如果你感觉使用像 Java 之类的架构更好,不妨看一下 Zend Framework。如果你想要更新的100% OO,但又要比 Zend 简单点儿,那就用 Symfony 2。如果你是一名 Rails 粉丝,想要语法表达更直接了当,你可以选择 Laravel 或者 CakePHP

我真的很喜欢 Ruby on Rails 的开发方式,这就是我为什么使用 Laravel 开发的原因。它是一个非常优秀的框架,你可以做任何你想要做的事情。你可以快速地学习它,只需阅读官网文档即可。使用 Laravel 既可以创建一个简单的 API,也能够开发一个复杂的应用程序。

为什么仅仅为了获取活跃用户信息,你就必须要创建3个或4个类呢?应该简单才对,就像 Laravel 及其 Eloquent ORM 这样:

User::where('status', '=', 'active')->get(); // all active users
User::find(2)->status; // get the status of user_id 2

你只需要阅读这些代码,就能知道它在做什么。就像和你在说话一样,代码会告知你想知道的一切。你要是想渲染一个视图或者使用它作为一个邮件消息体:

$viewContent = View::make('users.welcome')->with('name', 'Grossi'); // 这样就行了

Laravel 4(译注:Laravel 5 已经发布)基于 Composer,这和 Zend Framework 2 以及 Symfony 2 不谋而合,如果你想要使用一些它们的组件,Composer 可以轻易地帮你做到。我在采用 Laravel 的项目中使用了大量的 ZF 组件,它们都工作得很好。

话说回来,你应该使用一个 PHP 框架去提高你的开发效率,但是,如果你能用纯 PHP 做到同样的事情,那就用纯 PHP,因为你是在用 PHP 开发,而不是框架语言。

我也是一个 Zend Framework 程序员,要知道每个项目都不尽相同。但是请务必关注一下 Laravel 框架吧,不妨试一试。Laravel 是一个非常优秀的项目,它的开发团队相当出色,其中有一些非常知名的程序员如 Taylor OtwellDayle Rees

我希望能帮到你们,谢谢。


作者:Junior Grossi,PHP开发者,精通 Zend 框架,此外涉足 Rails 开发,对 Java 和 C 也相当有经验。

原文: Why you should use a PHP Framework and why I am using Laravel

感谢: Jodoo 帮助审阅并完成校对。