首页 > 评论 > 关键词 > PHP最新资讯 > 正文

2019年了,PHP已不再是当年那个“设计糟糕”的语言

2019-05-29 08:41 · 稿源:InfoQ公众号

程序员 代码 黑客

图片来源图虫:已授站长之家使用

声明:本文来自于微信公众号 InfoQ(ID:infoqchina),作者 | Brent,译者 | 张兰月,授权站长之家转载发布。


这篇文章不在于解决关于 PHP 的那个永恒话题,而是想让你了解,PHP 在这些年的进展以及那些值得关注的特性与发展现状。

之前,有一篇非常流行的博客文章是“PHP:那些糟糕的设计”,第一次读到这篇博客的时候,我正在一个非常破旧的地方工作,处理着许多 PHP 遗留项目。这篇博客对我触动很深,我开始思考是否要停止编程,换一份完全不同的工作。文章地址:

https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/

幸运的是,很快我就换了一份工作,而 PHP 在 5.X 版本之后又有了很多新的改进。今天,我要向那些不再使用 PHP 编程,或者陷入遗留项目的人致敬。

剧透:直到今天,PHP 仍有很多糟糕的东西,例如许多核心功能仍然存在不一致的方法签名,仍然存在令人混淆的配置设置,仍然会有一些开发者因为知识的缺乏而导致写的代码很糟糕等等。

但是,本文我想把目光集中在 PHP 已经改进的地方上面,以及如何写出更加干净和易维护的 PHP 代码。也许你不会改变对 PHP 的看法,但很有可能,你会惊讶于过去几年 PHP 的进步。

要   点

  • PHP 每年都会推出一个新的版本;

  • 自 PHP 5 代之后,其性能不断提升;

  • 有框架、包和平台组成的活跃生态系统;

  • 过去几年间,PHP 添加了许多新的特性,且现在仍在持续演进;

  • 许多工具如静态分析器也越发成熟,未来也将继续发展。

更新:很多人希望我能够展示一下实际代码,这是我其中一个业余项目的源代码,它是用 PHP 和 Laravel 写的,另外还有一个是我们在办公室负责维护的上百个 OSS 包的列表。

  • https://github.com/brendt/aggregate.stitcher.io

  • https://spatie.be/open-source/packages

回顾历史

让我们先快速回顾一下 PHP 的版本发布周期。现在 PHP 的版本是 7.3,预计 2019 年末将发布 PHP 7.4,7.4 之后的版本将会是 PHP 8.0。

从 5.X 版本之后,PHP 核心团队一直在努力每年发布一个新版本,并且在过去的 4 年间,这一目标一直完成得很好。

大致来说,每个新版本都会用 2 年时间进行积极地支持,然后用一年进行“安全修补”工作。这样做的目的是促使 PHP 开发者尽可能保持最新状态,例如每年都升级比从 5.4 直接跳到 7.0 要简单得多。

PHP 具体的版本发布情况,可以查看:

https://www.php.net/supported-versions.php

搞清楚 PHP 的发展历程后,我们来谈谈大家对 PHP 的常见误解。

PHP 的性能

在 5.X 版本时代,PHP 的性能平均而言是最好的。而在 7.0 时代,大部分的 PHP 核心都从零开始重写了,其性能能够达到之前的 2-3 倍。口说无凭,幸运的是,有人花了大量时间来测量 PHP 的性能,Kinsta 提供了一个很好的更新列表。

从 7.0 版本以来,PHP 性能就只升不降。PHP web 应用的性能可以和其他语言 web 框架的性能相提并论,甚至更高。具体测试情况可查看:

https://github.com/the-benchmarker/web-frameworks

当然,PHP 框架的性能还无法超越 C 和 Rust,但是要比 Rails 或 Django 好,且能够和 ExpressJS 相媲美。

框架和生态系统

在谈到框架时,PHP 已经不再只是 WordPress 了。作为职业的 PHP 开发者,我认为,WordPress 无法从任何层面代表当今的生态系统。

总体来说,有 2 个主要的 web 应用框架以及一些相对而言较小的框架,如 Symfony 和 Laravel。除此之后,还有 Zend、Yii、Cake、 Code Igniter 等等。

如果你想了解现代 PHP 开发究竟是什么样子,那么就需要掌握 Symfony 和 Laravel 中的一个,这 2 个框架都有庞大的生态系统,包含各种包和产品。从管理面板和客户关系管理系统 (CRM) 到单独的包,从持续集成 (CI) 到性能监视工具,我们有无数的服务如 web 套接字服务器、队列管理器、支付集成等等。

但是,这些框架都是为实际开发而设计的。如果你需要纯粹的内容管理,WordPress 和 CraftCMS 是理想选择,而且它们还会不断优化。

衡量 PHP 生态系统目前状态的方法是看一看 Packagist,它是 PHP 主要的包仓库。在过去的时间里,它呈现出了指数式增长的态势,每天 2500 万左右的下载量,足以说明 PHP 生态系统已经不再是过去那种弱者了。

Packagist 网站上列出了过去的包和版本数量:

除了应用框架和内容管理系统 (CMS) 以外,我们还发现,在过去几年,异步框架也崛起了。

异步框架是指用 PHP 或其它语言编写的框架和服务器,它们能够让用户运行真正异步的 PHP。异步框架的例子包括:Swoole、Amp 和 ReactPHP。

由于我们已经进入异步领域,具有大量 IO 的 web 套接字和应用等东西在 PHP 世界中就变得非常重要。

另外,人们还谈到了内部邮件列表,在邮件列表中,PHP 核心开发者讨论了 PHP 语言的进一步发展,例如增加 libuv 到核心之中。对于不熟悉 libuv 的人来说,libuv 同 Node.js 用于实现其所有异步性的库一模一样。

  • 相关推荐
  • 大家在看
  • 站长之家诚聘:SEO高手、资深网页设计师、JAVA/GO/PHP/.NET工程师

    2020年站长之家开启新一波人员招募,欢迎小伙伴加盟。本次的首推职位有资深SEO高手、资深网页设计师、JAVA/GO/PHP/.NET程序员,欢迎大家投递简历到hr@chinaz.com邮箱(务必附作品、工作经历、工作成绩等)。SEO高手(若干人)职责描述:1、负责站长之家网站的搜索引擎优化方案设计,提高网站流量、收录和排名;2、负责监控和调研搜索引擎数据与规则,调研竞争对手及其他网站相关策略,制定并实施应对和优化方案;3、负责对SEO相关数据进

  • 原神语言交流Odomu成就任务攻略 丘丘人语言交流怎么触发

    ​原神中是有一个语言交流的成就可以完成,叫做“...odomu”,成就的需求是在语言交流中与丘丘人交谈成功,很多玩家还不清楚这个语言交流的任务怎么做,下面就来为大家详细的介绍一下。

  • 当美食成为社交语言,品牌可以擦出火花么?

    十一期间,国内旅游超6亿人次,如此海量的人群跨越山水,去往不同的城市和地域,把所见所闻的体验,又全部生成海量的社交内容。据抖音发布的「2020国庆中秋假期数据报告」显示,上海问鼎今年抖音热门旅游城市榜首,相关的旅游视频点赞数超4515万,累计播放次数超14.5亿,重庆和深圳分别位列二三。除此外还有新上榜的黑马城市苏州和东莞。两个城市相关的旅游视频点赞量也分别高达2761万和1784万,播放量分别突破10亿和6亿。可见每一

  • 中国听力语言康复研究中心联合北大医疗脑健康开展《儿童言语语言治疗师专业技能培训》

    语言康复行业发展的关键标志之一,就是言语治疗师数量与专业化水平的提升。为共同推进国内语言康复专业人员的在职培训,近期,中国听力语言康复研究中心(简称:中语康)联合北大医疗脑健康开展了关于儿童言语语言治疗师的专业技能培训,旨在借助双方专业力量,夯实语言康复的专业建设,探讨并建立国内言语治疗师的认证和考核标准。我国言语治疗师人才极度匮乏。近年来,我国言语障碍患者数量日趋增长。据今年国际聋人日发布的数据

  • 十年后可能消失的五种编程语言

    随着时间的流逝,程序员们发现了更新、更简单的工作方式,新的编程语言如雨后春笋般出现,但只有少数编程语言能成为社区的新宠。这种进步的一个副作用是一些古老的编程语言必然会跟历史一样被人们遗忘。如果一个编程语言无法随着时间的推移提升其价值,那么它的用户群终将会流失,并逐渐淡出人们的视线,或者成为更新一代编程语言的基础。

  • Google宣布了新的云功能:更多的语言支持、增强安全性等

    谷歌在其云平台上提供的功能即服务(FaaS)是云功能,允许开发者构建与第三方服务和api或物联网后端集成的无服务器解决方案。最近,这家公共云供应商宣布了一些云功能的新功能,如更多的语言支持、改进的开发体验、每个功能标识的增强安全性以及更多地区的可用性。谷歌在2018年的下一届云大会上宣布,自其全面可用以来,谷歌继续通过新的更新来增强云功能。这些更新包括对Java、Go、Node.js、还有python。现在,公司进一步扩展了?

  • 为什么Java、Python会成为程序员最害怕的编程语言?

    最不受欢迎 / 最令人畏惧的编程语言有哪些?这些编程语言为什么令人畏惧?对它们的评价是否公正?在 StackOverflow 的 2020 年度开发者调查中,有一张表格,显示的是“最受欢迎、最令人畏惧和最想要的编程语言”。最受欢迎的和最想要的编程语言,嗯,是有点无聊。倒是那个最令人畏惧的就有意思多了。正如托尔斯泰(Tolstoy)所说的:“幸福的家庭都是相似的,而不幸的家庭则各有各的不幸。”

  • 华为方舟编译器正式支持C语言:完全开源

    2019年8月底,华为方舟编译器(OpenArkCompiler)正式开源,迈出了跨越性的一步。一年多来,方舟编程体系陆续实现了编译器、引擎、调试器的开源,其中编译器的重点功能主要集中在Java应用程序静

  • Python有望超越Java排第二?风变编程解析编程语言新趋势

    随着人工智能时代的来临,编程语言的热度居高不下,随着智能机器人的出现,在2020年更是迎来一波新的高峰。在这样的大环境下,关于谁是人工智能最流行编程语言的讨论也十分热烈,C、C++、Java、Python等编程语言不断被拿出来做比较。那么接下来,风变编程来解析一波当下编程语言的新趋势。Python受欢迎度有望超越Java?近日,TIOBE编程语言社区公布了2020年10月编程语言排行榜。榜单数据显示,Python的受欢迎程度十分逼近排在第二?

  • Arm的目标是成为跨越HPC到云到边缘环境的硬件基础

    在过去的一个月中,ARM一直是一系列公告的核心,包括NVIDIA的一项轰动一时的收购要约,所有这些都印证了许多人早已预见的未来,即英特尔要担心的远不止是AMD。从最初的实验性RISC设计开始,Arm逐渐成为移动设备soc的事实标准。在过去的十年中,随着英特尔新CPU的发布节奏和性能的下降,基于Arm的设计弥补了速度和功能上的差距,因为苹果(Apple)和高通(Qualcomm)等授权厂商已经将最新的移动电话装进了让两年前的PC机付之一炬的

    Arm
  • HP首款高保密碎纸机,9月22日正式开启预售!

    如果说办公桌只是一个小方格、枯燥无趣,那一定是你不懂得生活、给办公添加色彩;如果说办公用品只是千篇一律,能用即可!那一定是你缺少一双发现宝物的慧眼。同类型的产品千千万,总有那么一款是既能装饰你的环境、又能给你在体验上带来质的飞跃。 科技发展日新月异,智能产品层出不穷,不管是生活用品还是办公产品的都逐渐趋向智能化、简单化;而办公的产品需求也逐渐从单一化走向集成化,为了丰富HP品牌在办公领域的集成解决方案?

  • 云聚高性能,论道新超算 ——CCF HPC CHINA2020 在郑州举行

    业界最具影响力的年度高性能计算盛会——2020 CCF全国高性能计算学术年会(CCF HPC CHINA 2020) 9 月28- 30 日在中原古都郑州通过云端线下线上同步隆重举行。本次大会的主题是“新超算 新基建 新经济”。CCF HPC CHINA2020 由中国计算机学会主办,中国计算机学会高性能计算专业委员会、郑州大学、郑州航空港经济综合实验区共同承办,北京并行科技股份有限公司协办。为期三天的盛会将全面回顾 2020 年中国高性能计算领域的创新与实践

  • OKEx早报:以太坊2.0已激活新测试网Spadina Launchpad

    OKEx早报:工信部“加强区布局与运用”OKEx早报:以太坊2.0已激活新测试网,存款工具已审计OKEx早报将在每日早间为您带来最新的行情,以及相关行业动态。帮助投资人在最短的时间内了解夜间的动态消息,更好的握把每日行情。行情速递9月23日讯,昨天BTC收涨,涨幅0.32%,尾盘在10450美元附近调整。通过OKEx平台交易数据可以看出,今日早间行情缓慢上行,BTC开盘报10451.7美元,随后震荡拉升,最高点触及10572.9美元,当前在10500美元

  • 云安全日报200929:云计算热门语言Python发现注入漏洞,需要尽快升级

    Python是一种跨平台的计算机程序设计语言。它结合了解释性、编译性、互动性和面向对象的诸多特性,最初设计用于编写自动化脚本,然而随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。近些年,Python尤其在云计算,人工智能(AI)领域,应用十分广泛。不过最近Python爆出了比较严重的注入漏洞,需要尽快升级。以下是漏洞详情:漏洞详情CVE ID: CVE-2020-26116 CVSS评分: 5.0 中Python http.client(Pytho

  • 买它还是iPhone 12?华为Mate 40 RS保时捷设计售价曝光:轻松过万

    华为Mate 40系列已经定于10月22日晚8点全球首发。据悉,此次华为将带来四款型号,包括:Mate 40、Mate 40 Pro、Mate 40 Pro+以及Mate 40 RS保时捷设计。最新爆料信息显示,华为Mate 40系列普通

  • IPU设计商Graphcore启动全球合作伙伴计划 浪潮等已加盟

    9月23日消息,Graphcore宣布推出精英合作伙伴计划,该计划是汇集渠道合作伙伴的全球网络,旨在满足客户对Graphcore两大解决方案的需求,包括AI计算平台IPU-M2000以及用于横向扩展和超级计算规模的IPU-POD。据介绍,Graphcore精英合作伙伴计划包括许多全球知名渠道伙伴、技术分销商和转售商,该计划将支持Graphcore最新的IPU-Machine: M2000 (IPU-M2000)向全球范围内的客户供货。目前Graphcore发布的合作伙伴名单包括:

  • 星云Clustar首席科学家胡水海应邀出席HPC-AI论坛发表演讲

    第十六届高性能计算峰会(简称CCF HPC CHINA 2020)于 9 月 28 日- 30 日线上线下同步召开。星云Clustar首席科学家胡水海受邀在HPC-AI论坛发表“高性能联邦机器学习异构系统”主题演讲。 CCF HPC CHINA2020 是全球高性能计算领域最具影响力的三大盛会之一,大会旨在通过汇聚前沿学术成果、展示创新应用技术、交流创造行业价值,促进超算技术应用生态与产业数字化升级转型,打造一个全球化开放式HPC交流共享平台。 众所周知,AI领域?

  • iPhone 12系列和iPhone 11等前代尺寸对比

    伴随着四款 iPhone12系列的推出,苹果目前为用户提供了丰富的尺寸选项。现在外媒 MacRumors 精心制作了从 iPhone SE 到 iPhone12Pro Max 的近年来机型的尺寸比较。其中注意的是,图片中使用的是 iPhone11Pro Max 的渲染图,而iPhone7Plus/8PLus 和 iPhone XS Max 的尺寸相同,就是后置摄像头有所区别。

  • iPhone 12

    ​今日凌晨,苹果正式发布了让人期待已久的全新的iPhone12 系列 4 款新的机型分,iPhone 12 Mini、iPhone 12、iPhone 12 Pro、Phone 12 Pro Max 。本文中,我们将主要介绍其 iPhone 12外观设计、性能配置、售价等方面的主要信息。

  • iPhone SE Plus爆料:或是刘海尺寸最小的全面屏iPhone

    ​9 月 27 日,有博主分享了一则关于iPhone SE Plus的最新爆料。值得注意的是,现在网上有着不少关于iPhone12 系列的爆料和少许全新iPhone SE的消息,但却很少有着关于iPhone SE Plus的信息。

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议
  • 热门标签