PHP 的前世今生

PHP 现在正在经历着一场自己在编程语言中的文艺复兴。通过增加一系列新的特性(比如 namespaces,traits,closures,build-in opcode cache 等),PHP 逐渐演变成一个现代化的脚本语言。

同时,PHP的整个生态系统也在因此而转变。PHP 程序员们不再过度依赖那些庞大而臃肿的框架,而是更多的去使用更加轻量级的专用组件。Composer 依赖管理工具也彻底改变了人们构建 PHP 应用的方式;

它将我们从那些框架的围墙中解脱出来,让我们可以自由混搭各种可相互操作的组件,从而搭建出最能符合我们需求的PHP 应用。当然,如果没有 PHP Framework Interop Group 负责提出与优化的各种标准,那么这些组件之间的互操作性也是几乎不可能实现的。

《现代PHP之路》可以当作是一份对 PHP 新特性的教程,它将向你介绍各种实用的社区标准,最佳实践;并教会你如何利用这些知识和可互操作的组件来构建和部署不可思议的 PHP 应用。

PHP 的过去

在开始学习现代PHP 之前,我们应该先了解一下 PHP 的起源。PHP 是一种服务器端的解释型脚本语言。也就是说你写好了 PHP 代码,要将它上传到服务器上,然后通过 PHP 解释器来执行你的代码。

PHP 通常被用于像 Apache 或者 Nginx 这样的 Web 服务器来提供动态的内容。当然,PHP 也可以被用来创建强大的命令行程序(就像 bash,Ruby,Python等等)。许多 PHP 程序员由于不了解这一点而错过了好多让人激动的功能。当然,这些程序员不包括你在内。:)

你可以通过官方网页来了解PHP 的历史。在这里我不打算再重复已经被 Rasmus Lerdorf(PHP 之父)说过的话。我想说的是 PHP 有一个混乱的过去。PHP 最初是由 Rasmus Lerdorf 写的一套简单的 CGI 脚本,用来跟踪访问他主页的人们的信息。

Lerdorf 给他的这套脚本命名为 “个人主页工具集”(Personal Home Page Tools)。这套代码跟我们现在所说的 PHP 完全不同,甚至根本不能算是一种脚本语言,而只是一个简单的工具,可以提供一些简单的变量,自动解释表单变量,并可以嵌入 HTML。

在1994年到1998年之间,PHP 经历了数不清的改进,甚至还有好几次完全推倒重写。Andi Gutmans 和 Zeev Suraski,两位当时还是 Tel Aviv 公司的程序员,也加入了 Rasmus Lerdorf 的队伍,逐渐将 PHP 从一套简单的 CGI 工具转变成一个完整的编程语言,让 PHP 有了比较统一的语法和简单的面向对象支持。

他们将最终的产品命名为PHP3, 并在1998年下半年正式发布。这个新的命名跟之前的名字没有什么联系,而是 “PHP:Hypertext Preprocessor” 的递归缩写形式。PHP3 是第一个长的有点像我们现在所说的 PHP 的版本。它对各种数据库,协议和API有着卓越的可扩展性。PHP3 的这种可扩展性吸引了更多的开发者加入到这个项目中来。到1998年底,PHP 已经在全世界的 Web 服务器中占有了 10% 的份额。

PHP 的现在

现在,PHP 语言正在来自世界范围的许多开发团队的支持下快速发展。整个开发的流程也有了一些变化。在过去,一般的开发过程就是先写好 PHP 代码,将文件上传到服务器,然后开始祈祷一切都能正常运行。这是一个很不好的开发流程,但是,在没有可用的本地开发环境的情况下,也只能不得已而为之。

现在的开发流程使用版本控制工具取代了过去那种FTP的方式。使用 Git 这样的版本控制工具可以维护一个具有历史记录的代码库,你也可以很容易的创建新的代码分支或者合并不同的代码分支。使用 Vagrant 这样的虚拟化工具和 Ansible,Chef 或者 Puppet 这样的自动配置工具可以虚拟出跟生产环境一致的本地开发环境。

通过Composer 依赖管理工具我们可以利用专用的 PHP 组件。我们的 PHP 代码遵循 PSRs - 由 PHP Framework Interop Group 管理的社区标准。我们可以利用 PHPUnit 这样的工具彻底的测试我们的代码。我们将代码部署在运行于像 nginx 这样的 Web 服务器之后的 PHP FastCGI 进程管理器中。我们也可以通过 opcode 缓存来提升应用的执行效率。

同时值得一提的是,直到2014年,PHP 终于有了一份官方的语言规范草案。

Sara Golemon 和 Facebook 在 O‘Reilly 的 2014 OSCON 会议上宣布了第一份 PHP 规范草案。你可以在 PHP internals mailing list 中查看这份官方声明,也可以在 Github 上查看 PHP 语言规范。

由于有多个PHP 引擎的竞争,使得官方的 PHP 语言规范文件就显得非常重要。最初的 PHP 引擎是 Zend Engine,它是用 C 语言写的一个 PHP 解释器,并从 PHP4 开始使用。

Zend Engine 是由 Rasmus Lerdorf,Andi Gutmans 和 Zeev Suraski 创建的,它也是 Zend 公司对 PHP 社区的主要贡献。不过,现在有了第二个主要的 PHP 引擎 - 由 Facebook 开发的 HipHop Virtual Machine。所以官方的 PHP 语言规范保证了这两个引擎之间基本的兼容性。

PHP 的未来

Zend 引擎正在添加新特性和改进执行效率等方面快速发展,这可能是因为他们感受到了来自于 Facebook 的 HipHop Virtual Machine 引擎和 Hack 编程语言的竞争压力。

Hack 是一个基于 PHP 的新的编程语言。它在保持了对 PHP 动态类型的向后兼容的同时,引入了静态类型,新的数据结构和更多的接口。Hack 的目标群体是那些即喜欢 PHP 语言快速的开发效率,又希望用静态类型带来对程序的可预测性和稳定性的程序员们。

HipHop Virtual Machine(HHVM)是一个 PHP 和 Hack 的解释器,它使用实时的 (just in time)JIT 编译机制来提升应用的执行效率,并减少对内存的占用。

虽然并不能说Hack 和 HHVM 即将取代 Zend 引擎,但是 Facebook 的参与在 PHP 社区引起了巨大的影响。更加激烈的竞争使得 Zend Engine 核心团队不得不宣布 PHP7,一个优化的 Zend Engine,据说将可以与 HHVM 相媲美。

对于PHP 开发者来说,这是一个让人激动的时代。PHP 社区从来没有像现在这样有活力,充满乐趣和有创造性。希望这个系列可以帮助大家更好的去认识现代 PHP。

如果你已经决定要学好PHP,找一家靠谱的培训机构,将会让你的学习过程事半功倍。

“年度最受信赖职业教育品牌”千锋教育,一直秉承“用良心做教育”的理念,同期在校学员5000余人,合作院校超500所,合作企业超10000家。全国有十三个校区。数十位总监级专家讲师全职授课,200余位业内强师全程面授。

“中国教育集团领先品牌”千锋教育,关注学员和企业的双向需求,每年为企业输出20000+计算机精英,毕业学员占据全国移动互联网培训人才一半以上的份额。毕业学员平均薪资也是全行业最高。

“年度最具影响力IT教育机构”千锋教育PHP课程的教学老师,全部来自央企及上市公司,平均从业经验5年以上。而且千锋教育的老师实行淘汰制,学生进行匿名投票。留下来的都是经过学生投票检验过的名师;

千锋教育的PHP课程采用实战教学和分阶教学模式。课程内容紧贴名企需求,以实战传授理论,不谈虚的,只教真的。千锋教育力求将学员打造成具备完美职场竞争力的精英。千锋教育也是学员项目敢上线的唯一机构。

千锋教育PHP培训班毕业学员,其平均年薪相比行业平均年薪,足足高出五万。

学PHP,首选千锋教育。千锋教育力造IT培训领导品牌,学员百分之九十以上都是大专以上学生,力求为你营造最优质的学习环境。

千锋教育现更有0学费入学、 2周免费试听、跨学科周末班限时免费送活动, 一次报名,学习双技能,如同打了五折。欢迎你前来咨询,试听。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • PHP 现在正在经历着一场自己在编程语言中的文艺复兴。通过增加一系列新的特性(比如 namespaces,trai...
    Lee2010阅读 1,209评论 0 5
  • 背景 HHVM 是 Facebook 开发的高性能 PHP 虚拟机,宣称比官方的快 9 倍,我很好奇,于是抽空简单...
    零一间阅读 649评论 0 4
  • ziadoz在 Github发起维护的一个PHP资源列表,内容包括:库、框架、模板、安全、代码分析、日志、第三方库...
    Gundy_阅读 6,280评论 4 192
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,393评论 25 707
  • 两耳不闻窗外事,一心只读圣贤书 都说人如果离开了社交,就会变的孤僻,不合群,成为了人们眼中的怪人,程序员,这个特殊...
    IT小C阅读 479评论 1 2