PHP 8.0.0 Released!

2020-11-27 00:09:45 +08:00
 tyzrj766

https://www.php.net/archive/2020.php#2020-11-26-3

13426 次点击
所在节点    PHP
107 条回复
whahuzhihao
2020-11-27 23:20:56 +08:00
php 早就有协程了啊,只不过不像 golang 这么方便,比较像 lua 那种,要手动调度。
baobao1270
2020-11-27 23:21:51 +08:00
PHP Yes ! Exciting !

个人比较关注语言方面的:
联合类型、错误类型统一、命名参数,PHP 终于和主流语言接轨了
注解这个真的是 Web 开发的福音
Lemeng
2020-11-28 00:59:06 +08:00
虽说江山不在,但 php 必须支持
zachlhb
2020-11-28 09:03:53 +08:00
@ben1024 用了,不行,有时候一大堆的失败
zachlhb
2020-11-28 09:04:43 +08:00
@linxb 阿里源有些包没有的,有些包特定的版本没有
zjsxwc
2020-11-28 09:20:37 +08:00
我测试了 php8 开启 jit 在我电脑里的性能提升,提升巨大,见图:
https://i.loli.net/2020/11/28/qSpY9niTcxfoy1L.png


在我的帖子在 https://tanronggui.xyz/t/603272


@leonidas
CodeCodeStudy
2020-11-28 10:49:51 +08:00
@whahuzhihao 你指的是 yield 吗?那个不太好用,容易出错,像 Golang 和 Swoole 一样使用 go 包起来更方便些
hantsy
2020-11-28 11:08:15 +08:00
PHP 8 这个不讲武德,这么多特性,还得分 7,8 个版本实现吧。看看现在的 C#,Java 每个大版本都在挤牙膏。

看了一下 PHP 8 的 Match Expression,这个设计不错,不知道是否支持 Sealed Class 类似的 Class 匹配,有用过的回复一下。Java 中的实现直接复用 Switch,到最新的 15 还不支持 Sealed Class 。

Attributes (或者 Java 中 Annotations )将原来的 Doctrine 中使用 Attribuite 直接标准化,辅助说明从 Comments 中直到放到代码上,语法更接近 C#,这算得上语法上的一次革命,不错。这个过程类似于 Java 中使用 Doclet (用过 Hibernate1.x 2.x 基本都是用过的 ) 到 Java 5 Annotations 。

JIT 不用说了,大杀器,但这个不属于语言语法范围。
hantsy
2020-11-28 11:10:51 +08:00
@sagaxu Java 是容易容器化的,你完全可以用最新 Java 15 的语法写程序,比如 record 在最新的 Spring 5 。3 可以轻松使用。Text Block 不讲了,如果你还在写 SQL 或者类似的 XXXQL,一下子感觉多行显示舒服多了。
hantsy
2020-11-28 11:18:46 +08:00
@sagaxu Quarkus 很早之前有提醒可能新版本不支持 8,过渡到 11,但是但现在 Quarkus 还是在兼容 8,虽然邮件列表中很多人提议删除 8 的支持。个人觉得 Quarkus 一开始就是为容器准备的,用 Java 11 一点问题也没有。Quarkus 在 1 。0 的时候,它的介绍是 a container first framework. 现在网站上写的是 A Kubernetes Native Java stack tailored for OpenJDK HotSpot and GraalVM, crafted from the best of breed Java libraries and standards,显然它又将 jvm 运行环境当成一种目标。
sagaxu
2020-11-28 12:50:47 +08:00
@hantsy Java 8 比预期的更坚挺,官方支持到 2030 年,Java 11 却只支持到 2026 。现在这个阶段哪个框架不支持 8 就是自掘坟墓。
ahu
2020-11-28 12:55:50 +08:00
https://www.php.net/releases/8.0/zh.php?lang=zh

竟然有中文版,官方有心了!
CodeCodeStudy
2020-11-28 14:06:09 +08:00
@ahu 不错,看得很清楚
1627072329
2020-11-28 16:36:39 +08:00
终于发布了,等好久了
hantsy
2020-11-28 17:07:33 +08:00
@sagaxu 如果你做的是一些公共库,或者通用框架,考虑到兼容性,定格在 Java 8 无可厚非,毕竟要更多的考虑用户习惯。目前看到的可能 Helidon2 是第一个宣布 Java 11 起步的吧(太多的新特性,不得不放弃 8, 比如 reactive, 雇用 Rxjava 大师操刀,基于 Flow 重写,另外也启用了 Micronaut 的团队成员丰富功能 ),但它还在维护 Helidon1 。x ( Java8 )。

但是如果自己的业务项目,完全可以跟进最新的 Java 版本,甚至可以使用一个 CI 来检测当前版本至最新的 ea 版本兼容性,代码可以一直持续跟进新语法。
hantsy
2020-11-28 17:08:25 +08:00
好几年没写 PHP 代码了,得玩玩 PHP 了。
limingxinleo
2020-11-28 17:09:40 +08:00
@pein 你们打算众筹多少钱,让财务自由的鸟哥,来做这个呢?
jhdxr
2020-11-28 17:30:53 +08:00
PHP 内置的 IO 相关的方法全是同步的,要支持异步的特性,那些方法大部分都得提供一个异步的版本(不然没啥意义)。工作量太大,目前还没有看到有任何人有去推动 /做这个的打算。
sorshion
2020-11-28 19:14:18 +08:00
dd112389
2020-11-29 02:35:32 +08:00
PHP 是世界上最好的语言!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/729674

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX