对于 Web 开发者来说,PHP 是一款非常强大而又受欢迎的编程语言。世界上很多顶级的网站都是基于 PHP 开发的。例如,Facebook 就是利用 PHP 来创建和维护他们的内部系统;流行的开源博客系统 WordPress 也是基于 PHP 实现。
在 PHP 发展的同时,PHP 框架也迅速崛起,使开发复杂应用变得简单、快捷。
每个开发者都知道,拥有一个强大的框架可以让开发工作变得更加快捷、安全和有效。在开发项目之前选择一款合适的框架可以为今后奠定厚实的基础。
如何选择一款适合的 PHP 框架?我们可以以下几个方面来作出考量:
- 框架的特性和功能是什么?
- 学习曲线如何?
- 可扩展性怎么样?
- 对于编码团队的开发和维护具有积极的作用吗?
- 长期时间支持版本 (LTS)?
- 社区支持如何?
热门的框架
Symfony
Symfony 是一款为 Web 项目准备的PHP框架,它可以帮助你加速创建和维护PHP应用。Symfony 可以帮助你省去很多重复的编码工作,让你的工作重心转移到设计和控制上面来。
Symfony 是一款可重用的PHP组件,它是基于MIT协议的开源软件。一些比较出名的项目,像 Drupal, phpBB 使用的都是 Symfony 框架。事实上,另一款 PHP 流行框架 Laravel 也是基于 Symfony 的一些组件建立的。
Symfony 致力于可重用组件,并提供最好的模块化。另外 Symfony 利用模块和控制器来开发 Web 应用,这可能会让一些刚入门的开发者望而却步。此外,Symfony 还是一个很好的模块化结构的例子,你可以以模块化的方式在你的项目里使用 symfony 提供的 30 + 组件。
http://symfony.com/
Laravel
“PHP framework for Web Artisans”——Laravel 作为最流行的 PHP 框架,为开发者提供了一个优秀的社区交流平台。
Laravel是一款免费并且开源的 PHP 应用框架,它是为开发基于 MVC 的WEB 应用而设计的。它拥有优雅的语法,让你可以可简单快速开发你的应用。它拥有大多数常见的功能,如:路由,身份验证,会话,队列和缓存。
2015 年 5 月 Laravel 发布的 5.1 版本将提供长时间支持版本(两年)。5.2 版本也在 2015 年 12 月推向市场。很多托管公司提供 Laravel 支持以及 Laravel 应用托管解决方案。
https://laravel.com/
Yii
由国人薛强在 2008 年创建的 Yii 是一个安全、快速、高性能的应用 Web 开发框架。是一个基于DRY (Don’t Repeat Yourself) 理念的,拥有简洁编程逻辑的纯面向对象框架。
它是一款快速、安全和专业的 PHP 框架,同时它也是一款开发WEB 2.0应用的高性能PHP框架,Yii 的功能非常强大,内置以下功能:MVC、DAO/ActiveRecord、I18N、权限验证、缓存、安全控制、测试、数据访问对象等。
Yii 的另一个不错的特性是整合了 jQuery,使得前端开发者能更快地上手,它利用基架来生成代码。Yii 和 Symfony 一样是借助组件来使应用开发更快。
http://www.yiiframework.com/
简单对比
就以上框架而言,其重要的特点和优势如下:
Symfony
- 提供 LTS
- 具有负载功能
- 是目前最稳定的全栈框架之一
- 基于组件的框架,提供广泛的模块化支持
- 有强大的社区和大量的学习资源
Laravel
- 2015-2016 年最流行的框架
- 支持 Composer 进行包管理
- 擅长做单元测试
- 提供了大量的软件包来扩展框架功能
- 强大的社区和大量的学习资源,社区氛围极好
Yii
- 自带 Ajax 支持
- 非常适合开发实时应用程序
- 高度可扩展
- 准确的错误处理
- 擅长创建 Restful Web Services
- 有强大的社区支持和丰富的学习资源
总结
Symfony 、Laravel 、Yii 三个PHP框架都是为开发人员提供全栈开发环境的优秀选项。但相对而言:
- Symfony 比较成熟,并且拥有一个更大、更成熟的社区。
- Yii 是一个独特的,并能稳健、安全地完成工作的框架。
- Laravel 非常适合新手,因为拥有优雅的语法,可简单快速开发你的应用,资料教程完善,社区氛围浓厚,这也是它成为流行框架的重要原因。
这里推荐新手使用 Laravel 入门来开发网站应用。在这个系列文章的实践中,就有很多编码的风格和 Laravel 类似,如果你继续了解 Laravel 框架你就会发现它是如此的熟悉。
另外,在兴趣之于还可以了解其它框架的特性和应用场景,找到合适运用之处。
额外内容
由于 PHP 框架众多,这里也只是简单介绍了个别的框架,如果想了解更多可以查阅维基百科中的相关内容:
看这里