![]() |
1
w7938940 11 小时 16 分钟前
这个标题好,比很多新闻专业的的都专业
|
![]() |
2
liqinliqin OP PRO @w7938940 #1 见笑了,发自内心喜欢 PHP,一分钟上手开始编程
|
3
hanguofu 11 小时 11 分钟前
能不能根据用户挑选的商品自动计算出总体积和总重量 ?
|
4
jimzaizheli 11 小时 10 分钟前
666
|
![]() |
5
liqinliqin OP PRO php 这个最适合 Linux C 程序员了,写扩展、写库,不用面向对象,就面向 Money
|
![]() |
6
imes 11 小时 5 分钟前
WordPress 里面有大量的 do_action('xxx'),还有主题文件动态 include 。这些在编译期,没办法做到静态分析完整调用图,怎么 AOT ?更进一步,Zend Engine 怎么办?有这些钱,还不如找人用 Golang 重写 WordPress 。。。
|
![]() |
7
xtreme1 11 小时 3 分钟前 ![]() 先不谈具体如何搞, 你都 AOT 了还怎么"拷贝到任何地方直接运行"...
我看了 php 现在貌似还没支持 musl |
![]() |
8
canteon 11 小时 1 分钟前
不会跟 python 打包一样吧
|
![]() |
9
javalaw2010 11 小时 0 分钟前
不是很看好。要解决的实际问题很多,光是 php 版本和 php 扩展就够喝一壶的了,另外还得考虑现有的框架兼容,比如 laravel: php artisan xxxx 的用法,怎么兼容进去。
|
![]() |
10
liqinliqin OP PRO @imes #6 这个就拿 WordPress 练了,到时发布版本,您直接用一下
|
![]() |
11
liqinliqin OP PRO @canteon #8 不是,这个是真正生成二进制,和打包两个概念
|
![]() |
12
liqinliqin OP PRO @javalaw2010 #9 一定要把这个搞定
|
![]() |
13
celaraze 10 小时 43 分钟前
我好几年前就用 frankenphp 搞过,这也是 swoole 的大招?
|
![]() |
14
liqinliqin OP PRO @celaraze #13 你是如何做的
|
![]() |
15
celaraze 10 小时 36 分钟前
@liqinliqin https://frankenphp.dev/cn/docs/static/ 你看一下,我刚翻了我的开源项目 commit 历史,我至少 2 年前就这么干了,一直都是./run 执行我的 php web 项目。
|
16
querysecret 10 小时 32 分钟前
太好了,如果真能出我转 php
|
17
zone10 10 小时 31 分钟前
直接用 Go 不香吗, glibc 都不依赖, 部署方面无人出其右
|
![]() |
18
liqinliqin OP PRO @celaraze #13 有办法处理,实际上现在搞的 AOT 实现,是可降级的,是函数级别的,会把一部分 PHP 函数给转成 C++ 函数,遇到混杂 PHP 和 HTML 的模版文件,或者不支持的语法,就还是走 opcode 了,和 swoole compiler 这个是一起运行的
|
![]() |
19
liqinliqin OP PRO @zone10 #17 就是喜欢 php ,不需要理由的喜欢
|
20
kakki 10 小时 23 分钟前
用 php 不就图省事么,直接 ftp 传上去就行,常驻内存还真不如用 go
|
![]() |
21
Yanlongli 10 小时 22 分钟前
额,是不是将整个 php 环境打包、然后将代码打包、再将浏览器打包、然后 润
|
![]() |
22
liqinliqin OP PRO 实际上现在搞的 AOT 实现,是可降级的,是函数级别的,会把一部分 PHP 函数给转成 C++ 函数,遇到混杂 PHP 和 HTML 的模版文件,或者不支持的语法,就还是走 opcode 了,和 swoole compiler 这个是一起运行的
|
23
back0893 10 小时 19 分钟前
有点鸡肋
不如原来 php ,可以直接修改代码 打包不如换语言 容器化不好么? |
![]() |
24
hronro 10 小时 7 分钟前
按我的理解,JS/PHP/Python/Ruby 这类动态语言,必须要依赖 JIT 才能有可以看的性能,不然性能上就要慢 2 个数量级。要搞 AOT ,除非能支持 PBO ,不然性能能看么?
|
25
xgdgsc 10 小时 3 分钟前 via Android
|
27
CodeCodeStudy 9 小时 3 分钟前
Java 的 GraalVM 的 native-image ,还是需要通过 java -agentlib:native-image-agent=config-merge-dir=/path/to/config-dir/将所有的代码跑一遍,收集运行中的反射、序列化、动态代理、资源等信息,然后再进行 native-image 的 AOT 编译。好奇 PHP 是怎么处理动态特性的?
|
28
CodeCodeStudy 8 小时 44 分钟前
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/ |
![]() |
29
phreej2voo 8 小时 44 分钟前
编译打包功能嘿,webman 框架早就支持了!!!
|
30
changz 1 小时 12 分钟前 via Android
生态才是最大的问题,举个例子,你能让 rocketmq 给你 swoole 写个 sdk 么
|