tyzrj766
V2EX  ›  PHP

PHP 8.0.0 Released!

  •  2
     
  •   tyzrj766 · Nov 27, 2020 · 15699 views
    This topic created in 2180 days ago, the information mentioned may be changed or developed.
    107 replies  •  2020-12-02 12:24:13 +08:00
    1  2  
    ❮ ❯
    sagaxu
    sagaxu
    Nov 27, 2020 via Android
    1
    php 5 跟 java 6 一样顽固,php 7 跟 java 8 一样坚挺,php 8 估计会跟 java 11 一样普及缓慢
    lights
    lights
    Nov 27, 2020 via iPhone
    2
    Php 多好一语言呀
    MeteorCat
    MeteorCat
    Nov 27, 2020 via Android
    3
    有 vm 了吗?
    Myprincess
    Myprincess
    Nov 27, 2020
    4
    有没有 PHP 运维呀?修 BUG 的兼职。
    rateltalk
    rateltalk
    Nov 27, 2020 via iPhone
    5
    Php 是最好的语言
    yklaxds
    yklaxds
    Nov 27, 2020 via Android❤️1
    6
    天天水版本号,也不知道向下兼容一下
    maigebaoer
    maigebaoer
    Nov 27, 2020 via Android
    7
    php 的版本发布很激进🤣不过作为世界上最好的语言,激进点有好处,中小项目的历史包袱没那么大。
    yunye
    yunye
    Nov 27, 2020
    8
    新东西挺多的
    akira
    akira
    Nov 27, 2020
    9
    有几个特性看起来不错,大幅减少代码量了,写起来也舒服了很多
    jhdxr
    jhdxr
    Nov 27, 2020❤️22
    10
    @yklaxds ?????? PHP 槽点很多但第一次见有人吐槽 php 向下兼容性的。。。你是还在写 4.x 年代的代码吗?
    lihongming
    lihongming
    Nov 27, 2020 via iPhone
    11
    @jhdxr 对程序员没啥影响,主要是运维头疼,升级了环境,老代码就罢工了。
    msg7086
    msg7086
    Nov 27, 2020
    12
    @lihongming ermmm 环境不是跟着代码版本要求走的吗……
    yogogo
    yogogo
    Nov 27, 2020 via Android
    13
    @yklaxds 黑?不去看看隔壁 python 升级?
    liuzhaowei55
    liuzhaowei55
    Nov 27, 2020 via Android
    14
    @sagaxu 我觉得不一定,PHP8 有几个特性还是很吸引人的,性能上也有一定提升
    zachlhb
    zachlhb
    Nov 27, 2020 via Android
    15
    php 的 composer 越来越难用了,国内没一个好用的源,每次安装都得换不同的源才能把包装齐
    solu
    solu
    Nov 27, 2020 via iPhone
    16
    @yklaxds 张口就来???
    yekern
    yekern
    Nov 27, 2020
    17
    反正我们写代码很激进的.一般都是紧跟版本, 使用新特性
    mitu9527
    mitu9527
    Nov 27, 2020
    18
    终于出来了,自己可以先尝尝鲜,不过产品上还是等一年后再升级吧。
    des
    des
    Nov 27, 2020 via iPhone
    19
    @msg7086 @lihongming
    运维表示没事:你升级它干嘛,之前不用的好好的,给我们加活?
    love
    love
    Nov 27, 2020 via Android❤️1
    20
    @zachlhb 这是 PHP 的问题吗?这是你的问题。另外做开发哪有没有梯子的
    mitu9527
    mitu9527
    Nov 27, 2020❤️1
    21
    @sagaxu 刚看了一下 PHP 8 的 Release Announcement,主要还是完成 PHP 7 没做完的工作,比如,继续加强类型系统并引入了一些新的语法和语法糖,进一步统一 PHP 内部代码和用户空间代码的错误处理方式,引进 JIT 。都是实用的特性,过渡上也没有什么可犹豫的点,我觉得普及起来不会慢。
    xmitman
    xmitman
    Nov 27, 2020
    22
    @zachlhb https://developer.aliyun.com/composer 阿里云的源还不够你用吗
    CodeCodeStudy
    CodeCodeStudy
    Nov 27, 2020
    23
    PHP8 跟 PHP7 的兼容性还挺好,普及应该比较快
    CodeCodeStudy
    CodeCodeStudy
    Nov 27, 2020
    24
    PHP9 的计划是什么?
    mitu9527
    mitu9527
    Nov 27, 2020
    25
    @CodeCodeStudy 现在就开始考虑 PHP 9 了?我觉得别说是我们,就算是鸟哥可能也不知道 。
    chotow
    chotow
    Nov 27, 2020❤️7
    26
    作为一个 phper 感觉过年了,开心如此简单 😃
    lijialong1313
    lijialong1313
    Nov 27, 2020
    27
    诶不是说 php8 不支持 windows release 下载的么……
    assad
    assad
    Nov 27, 2020 via Android
    28
    @Myprincess 联系我啊
    assad
    assad
    Nov 27, 2020 via Android
    29
    @yklaxds php 的兼容已经做的很不错啦
    ben1024
    ben1024
    Nov 27, 2020
    30
    @zachlhb
    阿里的源还行,或者用 slince 的 (composer-registry-manager)[https://github.com/slince/composer-registry-manager] 切换下
    ben1024
    ben1024
    Nov 27, 2020❤️1
    31
    @chotow 还真是 今天又是充满希望的一天
    CodeCodeStudy
    CodeCodeStudy
    Nov 27, 2020
    32
    @mitu9527 发布一代,预研一代
    CodeCodeStudy
    CodeCodeStudy
    Nov 27, 2020
    33
    @lijialong1313 以前 Windows 的版本是微软编译的,现在微软不干了,现在是 PHP 官方开发组自己编译
    TORYOI
    TORYOI
    Nov 27, 2020
    34
    真香
    fkdtz
    fkdtz
    Nov 27, 2020
    35
    @sagaxu 整挺好
    oneonesv
    oneonesv
    Nov 27, 2020
    36
    Carlgao
    Carlgao
    Nov 27, 2020
    37
    php8 类型系统越来越完善了,还引入了 WakeMap 为 Jit 优化做准备,什么时候要是能引入协程,去掉$符号就完美了。
    GM
    GM
    Nov 27, 2020
    38
    @maigebaoer PHP 版本发布很激进???/黑人问号脸。
    zjttfs
    zjttfs
    Nov 27, 2020
    39
    php 9 就可以搞多线程 /协程 了..
    lijialong1313
    lijialong1313
    Nov 27, 2020
    40
    @CodeCodeStudy 这俩有啥区别啊……
    sorshion
    sorshion
    Nov 27, 2020
    41
    $符号是特征,去掉就没识别度了
    wmwmajie
    wmwmajie
    Nov 27, 2020
    42
    个人感觉 php 真正要起飞应该主要还是看 php9 是否包含协程这样的异步机制和连接池,能支持这两点直接起飞,PHP8 已经铺好了代码编译方面的优化,期待 php9 计划。
    zjsxwc
    zjsxwc
    Nov 27, 2020
    43
    谁有 8.0 jit 性能提升数据 发出来看看
    mitu9527
    mitu9527
    Nov 27, 2020
    44
    @zjsxwc 官方做了一些简单的基准测试。https://www.php.net/releases/8.0/en.php 里面有提到。
    mitu9527
    mitu9527
    Nov 27, 2020
    45
    @wmwmajie 是啊,希望官方能支持协程和常驻内存,不过感觉这工作量有点大。
    danielhuo
    danielhuo
    Nov 27, 2020
    46
    @Myprincess aHVvZGFuaWVsQGdtYWlsLmNvbQ==
    learningman
    learningman
    Nov 27, 2020
    47
    @Carlgao 最后改叫 python (
    Felldeadbird
    Felldeadbird
    Nov 27, 2020
    48
    @yklaxds 活久见,10 年来,第一次见吐槽 PHP 向下兼容。
    ben1024
    ben1024
    Nov 27, 2020
    49
    @mitu9527 @wmwmajie
    swoole 开发组在做这个工作,如果能合并一起感觉好些
    mitu9527
    mitu9527
    Nov 27, 2020
    50
    @ben1024 就是因为感觉官方不见得能吸纳 Swoole 才觉得工作量会比较大,希望结局能尽人意,也不枉众多 PHPer 们的期待。
    Immortal
    Immortal
    Nov 27, 2020
    51
    PHP 作为当年的入行语言 我还是很有感情的
    从一定角度来看 真的挺好的
    主流 web 语言没有一个能像 php 这样丝滑更新的 都得自己整一套热重载
    keepeye
    keepeye
    Nov 27, 2020
    52
    就差个原生协程了 加油
    yujieyu7
    yujieyu7
    Nov 27, 2020
    53
    滋瓷一下
    meshell
    meshell
    Nov 27, 2020
    54
    @mitu9527 看看 amphp 话说你们说得协程和 yield 有啥区别
    fox0001
    fox0001
    Nov 27, 2020 via Android
    55
    say yes~
    yklaxds
    yklaxds
    Nov 27, 2020 via Android
    56
    @solupro 张口就来?
    keepfun
    keepfun
    Nov 27, 2020❤️1
    57
    希望能重夺江山
    solu
    solu
    Nov 27, 2020
    58
    @yklaxds #55 愿闻其详,麻烦分析 PHP 兼容问题
    novaa
    novaa
    Nov 27, 2020
    59
    yes baby
    pein
    pein
    Nov 27, 2020
    60
    多线程不要想了基本不可能,引入协程就很棒,PHP 一旦全面协程化,预计会焕发第二春,官方是不指望了,某 s 开头的扩展不靠谱,谁认识鸟哥的联系他让他带领团队开发个协程分支啊,开发资金可以众筹。
    novaa
    novaa
    Nov 27, 2020
    61
    谁来做个性能评测
    zjsxwc
    zjsxwc
    Nov 27, 2020
    62
    @pein #60
    php7 开始不就早已支持协程 yield 生成器了吗
    mitu9527
    mitu9527
    Nov 27, 2020
    63
    @zjsxwc yield 是生成器,本质上是一个迭代器,不是协程。
    shellic
    shellic
    Nov 27, 2020
    64
    据说性能比 PHP7 还要高一些?
    Mrxx
    Mrxx
    Nov 27, 2020
    65
    php 性能再好,wordpress 都能给你拖下来
    zjsxwc
    zjsxwc
    Nov 27, 2020
    66
    @mitu9527
    额,本质上不都一样吗,

    当然如果说 python 的 gevent 这种与多进程用起来像的协程(提供了 fork/join ),
    那么 php7 确实还没有。

    而 swoole 的协程是抄了 golang 的 channel,又是另一种协程了。
    mitu9527
    mitu9527
    Nov 27, 2020
    67
    @zjsxwc PHP 还没有原生支持协程,目前 PHP 想使用协程,主要是用 Swoole 。另外,我没听说协程在 PHP 中和生成器有啥关系。
    Evilk
    Evilk
    Nov 27, 2020
    68
    @pein 同意,感觉鸟哥应该更靠谱一些,如果 PHP 原生支持协程,应该又会回到 2004 的巅峰,哈哈
    NoonTime
    NoonTime
    Nov 27, 2020
    69
    @Mrxx 鸟哥关于 PHP8 中 JIT 开发历程的博文.统计 Wordpress top50 函数然后 JIT,性能提升 10%
    ryh
    ryh
    Nov 27, 2020
    71
    https://wiki.php.net/rfc/constructor_promotion
    这个 rfc 真心不懂为啥这么做,虽然简单了很多,但很容易歧义吧,还是有 10 票反对很说明问题
    mitu9527
    mitu9527
    Nov 27, 2020
    72
    @ryh 我觉得就是个语法糖,喜欢用就用,不喜欢用就不用,没啥影响的。就比如 PHP 的箭头函数我也不太喜欢,我觉得它没精简到表达式的级别,用起来感觉不太舒服,但有不少人觉得还可以。
    konakona
    konakona
    Nov 27, 2020
    73
    @sagaxu 现在很多都已经容器化,加上 Symfony 系框架的推进,应该很快普及。233
    sagaxu
    sagaxu
    Nov 27, 2020 via Android
    74
    @konakona
    @mitu9527
    @liuzhaowei55
    新项目估计明年就能用起来了,存量项目不是说升就能升的,尤其是那些没有高 unit test 覆盖率的项目。
    sagaxu
    sagaxu
    Nov 27, 2020 via Android
    75
    @Evilk
    @pein

    php 协程缺乏应用场景,需要 php 协程的公司为什么不选择 go 呢,没有历史包袱的天生支持。

    拿 php 写常驻内存 service,需要更好的内存管理,php 现在的 gc 实现简陋,引用计数也不太容易支持多线程,搞不好还得来一个全局解释器锁。
    BBCCBB
    BBCCBB
    Nov 27, 2020
    76
    @sagaxu 如果不用大改就能获取性能提升, php 有协程肯定对现有的 php 项目有利
    2kCS5c0b0ITXE5k2
    2kCS5c0b0ITXE5k2
    Nov 27, 2020
    77
    @BBCCBB 就算有协程也不会无缝修改的。 肯定坑很多
    meshell
    meshell
    Nov 27, 2020❤️1
    78
    zjsxwc
    zjsxwc
    Nov 27, 2020 via Android
    79
    @meshell

    看了一个多小时才看明白,感觉就像,鸟哥在 php5 里面用 yield 生成器,造了个单片机非抢占式多任务系统,php 玩出了操作系统的味道,膜拜鸟哥!
    meshell
    meshell
    Nov 27, 2020
    80
    @zjsxwc 这个是原文也是 PHP 开发组的,作者目前在 PHPstorm 开发组. https://nikic.github.io/2012/12/22/Cooperative-multitasking-using-coroutines-in-PHP.html
    whahugao
    whahugao
    Nov 27, 2020
    81
    php 早就有协程了啊,只不过不像 golang 这么方便,比较像 lua 那种,要手动调度。
    baobao1270
    baobao1270
    Nov 27, 2020
    82
    PHP Yes ! Exciting !

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


    在我的帖子在 https://www.v2ex.com/t/603272


    @leonidas
    CodeCodeStudy
    CodeCodeStudy
    Nov 28, 2020
    87
    @whahuzhihao 你指的是 yield 吗?那个不太好用,容易出错,像 Golang 和 Swoole 一样使用 go 包起来更方便些
    hantsy
    hantsy
    Nov 28, 2020
    88
    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
    hantsy
    Nov 28, 2020
    89
    @sagaxu Java 是容易容器化的,你完全可以用最新 Java 15 的语法写程序,比如 record 在最新的 Spring 5 。3 可以轻松使用。Text Block 不讲了,如果你还在写 SQL 或者类似的 XXXQL,一下子感觉多行显示舒服多了。
    hantsy
    hantsy
    Nov 28, 2020
    90
    @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
    sagaxu
    Nov 28, 2020 via Android
    91
    @hantsy Java 8 比预期的更坚挺,官方支持到 2030 年,Java 11 却只支持到 2026 。现在这个阶段哪个框架不支持 8 就是自掘坟墓。
    ahu
    ahu
    Nov 28, 2020
    92
    https://www.php.net/releases/8.0/zh.php?lang=zh

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

    但是如果自己的业务项目,完全可以跟进最新的 Java 版本,甚至可以使用一个 CI 来检测当前版本至最新的 ea 版本兼容性,代码可以一直持续跟进新语法。
    hantsy
    hantsy
    Nov 28, 2020
    96
    好几年没写 PHP 代码了,得玩玩 PHP 了。
    limingxinleo
    limingxinleo
    Nov 28, 2020
    97
    @pein 你们打算众筹多少钱,让财务自由的鸟哥,来做这个呢?
    jhdxr
    jhdxr
    Nov 28, 2020
    98
    PHP 内置的 IO 相关的方法全是同步的,要支持异步的特性,那些方法大部分都得提供一个异步的版本(不然没啥意义)。工作量太大,目前还没有看到有任何人有去推动 /做这个的打算。
    dd112389
    dd112389
    Nov 29, 2020
    100
    PHP 是世界上最好的语言!
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   936 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 123ms · UTC 19:29 · PVG 03:29 · LAX 11:29 · JFK 14:29
    ♥ Do have faith in what you're doing.