首页 后端开发 php教程 PHP框架,伤不讫啊伤不起

PHP框架,伤不讫啊伤不起

Jun 13, 2016 pm 01:07 PM
codeigniter php rails request ruby

PHP框架,伤不起啊,伤不起

自从Rails刮起了一阵框架风,其它语言群起响应,Java,Python,Scala,PHP,无论静态动态语言都出现了模仿Rails模式的框架出现,其中,PHP语言的框架生产力更是一流,主流的PHP框架就有超过5种,加上不出名的框架的话,我估计起码有20多种框架,可怕的数量!!

PHP框架之路一直充满着争议,从PHP要不要用框架,到应不应该模仿Rails,却抵不上PHP框架的井喷式的增长,各类框架你方唱罢我登场,网上仅仅是罗列部分框架和简介就能成为一片文章,名为《国外十大最流行PHP框架排名》。PHP框架中比较知名的有:CodeIgniter、CakePHP等中小型框架和Zend、Symfony等大型框架。我一直在想为什么PHP的框架数量如此之多呢?
1. PHP开发框架太‘容易’了
不要骂我,说实话,PHP开发Web框架的门槛比起其他的语言,真的要低太多了,PHP本身已经有了对Web的支持,要做一个框架,只要先写一个单入口index.php,然后通过module和action参数执行对应的Controller类,和View代码,一个非常简单的框架就好了,熟练的程序员一两天就完成了。如果觉得太简单,再稍微封装一下,把$_REQUEST,$_SESSION封装一下,封装一下数据库操作等等。到这里一个有模有样的PHP‘MVC框架’就基本出炉了。熟练一点程序员一周时间搞定了。
相反其他语言,以ruby为例,光是对REQUEST的处理,参数解析等基础功能实现,就远远不止一周的工作量,在加上ruby语言的高灵活性和复杂的语法,使他开发一款拿的出手的框架所需要的精力是大大的超越一般,开发框架的门槛低是PHP框架泛滥的因素之一。

?

2. PHP的封装能力弱,致使框架的灵活度不够
这也是事实,PHP的框架很多,但是一般要评估项目,来选择适当的框架,如果是一个简单的web项目,一般选择CodeIgniter、CakePHP这类框架,如果是大型的应用,也会选择Zend、Symfony等大型框架,因为你会发现使用Zend和CodeIgniter完全是两回事。
也许我说的抽象了,那我举个例子:在默认的PHP环境中,是没有AOP功能的,不能对类的已有方法进行功能性增强,在需要实现类似功能的情况下,你就需要显示的修改外面的代码,非常流行的做法是利用PHP的魔法函数,但是依然需要修改对象的创建方法。
依然对比Ruby,它几乎是内置了AOP支持,可以在完全外部调用完全不变的情况下完成功能的增强。
在框架的封装中这种能力的差异就更加的显著,在PHP中框架复杂度高也提高了使用者的难度,而不能像Ruby等完全将复杂性隐藏在框架的内部。(说句题外话:javascript也是如此,jquery便是佐证)。

?

3. PHP的实现机制,使得框架的性能成为诟病
PHP的运行模式,每次request结束都会完全释放所有资源,导致框架的加载成为了一个不可忽视的性能累赘,即使你不介意上面提到大型框架的使用复杂度高,这个原因也让你不会在中小型项目中轻易使用Zend等大型框架。同时也限制了框架的能力。

据我分析,正是这三个原因,使得PHP的框架如此之多,但是没有一个成为真正的主流。这种情况未必是好事,在Ruby中,Rails一统,使得Rails社区空前繁荣,很多Ruby高手开发各种插件增强的它的功能。使得它有着十分良性的发展。在js框架中jquery也有着相同的经历。
在PHP中,高手则是不停的贡献它们的新框架,老实说我个人觉得帮助很有限,更是搅浑了这一缸水,其实很多框架完全可以合并为一个发展,与其出现100个60分的框架,不如出现一个100分的好框架。PHP框架,多的让我伤不起啊伤不起。?

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 日期和时间 CakePHP 日期和时间 Sep 10, 2024 pm 05:27 PM

为了在 cakephp4 中处理日期和时间,我们将使用可用的 FrozenTime 类。

讨论 CakePHP 讨论 CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

CakePHP 文件上传 CakePHP 文件上传 Sep 10, 2024 pm 05:27 PM

为了进行文件上传,我们将使用表单助手。这是文件上传的示例。

CakePHP 创建验证器 CakePHP 创建验证器 Sep 10, 2024 pm 05:26 PM

可以通过在控制器中添加以下两行来创建验证器。

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 是一个开源MVC 框架。它使开发、部署和维护应用程序变得更加容易。 CakePHP 有许多库可以减少大多数常见任务的过载。

您如何在PHP中解析和处理HTML/XML? 您如何在PHP中解析和处理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

See all articles