预计元旦前发布,各位
|
FarAheadSep 19, 2025
1
这个标题好,比很多新闻专业的的都专业
|
|
2
@w7938940 #1 见笑了,发自内心喜欢 PHP,一分钟上手开始编程
|
|
hanguofuSep 19, 2025
3
能不能根据用户挑选的商品自动计算出总体积和总重量 ?
|
|
jimzaizheliSep 19, 2025
4
666
|
|
5
php 这个最适合 Linux C 程序员了,写扩展、写库,不用面向对象,就面向 Money
|
|
cmosSep 19, 2025
6
WordPress 里面有大量的 do_action('xxx'),还有主题文件动态 include 。这些在编译期,没办法做到静态分析完整调用图,怎么 AOT ?更进一步,Zend Engine 怎么办?有这些钱,还不如找人用 Golang 重写 WordPress 。。。
|
|
7
先不谈具体如何搞, 你都 AOT 了还怎么"拷贝到任何地方直接运行"...
我看了 php 现在貌似还没支持 musl |
|
diudiuuSep 19, 2025
8
不会跟 python 打包一样吧
|
|
javalaw2010Sep 19, 2025
9
不是很看好。要解决的实际问题很多,光是 php 版本和 php 扩展就够喝一壶的了,另外还得考虑现有的框架兼容,比如 laravel: php artisan xxxx 的用法,怎么兼容进去。
|
|
10
@imes #6 这个就拿 WordPress 练了,到时发布版本,您直接用一下
|
|
11
@canteon #8 不是,这个是真正生成二进制,和打包两个概念
|
|
12
@javalaw2010 #9 一定要把这个搞定
|
|
celarazeSep 19, 2025
13
我好几年前就用 frankenphp 搞过,这也是 swoole 的大招?
|
|
14
@celaraze #13 你是如何做的
|
|
celarazeSep 19, 2025
15
@liqinliqin https://frankenphp.dev/cn/docs/static/ 你看一下,我刚翻了我的开源项目 commit 历史,我至少 2 年前就这么干了,一直都是./run 执行我的 php web 项目。
|
|
querysecretSep 19, 2025
16
太好了,如果真能出我转 php
|
|
zone10Sep 19, 2025
17
直接用 Go 不香吗, glibc 都不依赖, 部署方面无人出其右
|
|
18
@celaraze #13 有办法处理,实际上现在搞的 AOT 实现,是可降级的,是函数级别的,会把一部分 PHP 函数给转成 C++ 函数,遇到混杂 PHP 和 HTML 的模版文件,或者不支持的语法,就还是走 opcode 了,和 swoole compiler 这个是一起运行的
|
|
19
@zone10 #17 就是喜欢 php ,不需要理由的喜欢
|
|
kakkiSep 19, 2025
20
用 php 不就图省事么,直接 ftp 传上去就行,常驻内存还真不如用 go
|
|
YanlongliSep 19, 2025
21
额,是不是将整个 php 环境打包、然后将代码打包、再将浏览器打包、然后 润
|
|
22
实际上现在搞的 AOT 实现,是可降级的,是函数级别的,会把一部分 PHP 函数给转成 C++ 函数,遇到混杂 PHP 和 HTML 的模版文件,或者不支持的语法,就还是走 opcode 了,和 swoole compiler 这个是一起运行的
|
|
back0893Sep 19, 2025
23
有点鸡肋
不如原来 php ,可以直接修改代码 打包不如换语言 容器化不好么? |
|
hronroSep 19, 2025
24
按我的理解,JS/PHP/Python/Ruby 这类动态语言,必须要依赖 JIT 才能有可以看的性能,不然性能上就要慢 2 个数量级。要搞 AOT ,除非能支持 PBO ,不然性能能看么?
|
|
xgdgscSep 19, 2025 via Android
25
|
|
CodeCodeStudySep 19, 2025
27
Java 的 GraalVM 的 native-image ,还是需要通过 java -agentlib:native-image-agent=config-merge-dir=/path/to/config-dir/将所有的代码跑一遍,收集运行中的反射、序列化、动态代理、资源等信息,然后再进行 native-image 的 AOT 编译。好奇 PHP 是怎么处理动态特性的?
|
|
CodeCodeStudySep 19, 2025
28
public class Main {
public static void main(String[] args) { try { String className = "java.util.Collections"; Class<?> cl = Class.forName(className); System.out.println(cl.getName()); } catch (Exception e) { e.printStackTrace(); } try { long time = System.currentTimeMillis() / 1000L; String className = time % 2 == 0 ? "java.util.Base64" : "java.util.Timer"; Class<?> cl = Class.forName(className); System.out.println(cl.getName()); } catch (Exception e) { e.printStackTrace(); } } } javac Main.java && native-image Main && ./main 输出 java.util.Collections java.lang.ClassNotFoundException: java.util.Base64 或者 java.util.Collections java.lang.ClassNotFoundException: java.util.Timer 需要用到 java -agentlib:native-image-agent=config-merge-dir=./src/main/resources/META-INF/native-image Main 将动态特性收集起来,这里的 java 是指 GraalVM 的 jdk ,然后再 native-image 编译 https://www.graalvm.org/latest/reference-manual/native-image/guides/use-reachability-metadata-repository-maven/ https://www.graalvm.org/latest/reference-manual/native-image/metadata/AutomaticMetadataCollection/ |
|
phreejSep 19, 2025
29
编译打包功能嘿,webman 框架早就支持了!!!
|
|
changzSep 20, 2025 via Android
30
生态才是最大的问题,举个例子,你能让 rocketmq 给你 swoole 写个 sdk 么
|
|
julyclydeSep 20, 2025
31
感觉 swoole 这个名字之下好像产品已经变了好几次了?
|
|
cat1879Sep 21, 2025
32
打包后还能反编译吗?另外运行的环境是怎么样的
|
|
CodeCodeStudyApr 22
33
https://mp.weixin.qq.com/s/05I3xe4pgRJufSBG-8Gz6w
2026 年 4 月 22 日,Swoole 团队发布了 PHP 的 AOT |