我打算重构一个新的 PHP, 有帮忙维护生态的吗
QQ群: 1054052094
实现 PHP 生态经常讨论的不兼容的更新,比如:
- 多线程、原生协程
- 环境只有一个二进制文件
- 拆分数组和对象,例如解决前端经常遇到的 [] 和 {} 问题
- 允许没有美元符号作为变量
- 原生 html 渲染
- 支持常驻也支持在某一行代码开始,后续代码支持热更新
代码预览
$html =
<html >
<header>
<title>
{$title}
</title>
</header>
<body>
<div for="k, v in $list">
这里会循环输出列表内容:{$v.name}
</div>
</body>
</html>
echo $html;
原生协程启动多个服务
namespace App;
server = new Net\Http\Server(port: 8080);
obj = {}
obj.number = 100
server->get("/", (request, response) => {
response.write("Hello World");
obj.number += 200;
})
spawn for (i = 0; i < 100; i++) {
sleep(1);
echo obj.number, "\n";
}
spawn server.start();
$http = new Net\Http\Server(port: 8081);
$http->get("/test", (request, response) => {
response.write("Hello http");
obj.number += 200;
})
$http.start();
原生 json 作为对象语法
$a = {
"a": 1,
"b": 2
};
if($a->a == 1) {
Log::info("json 值读取 a=1 OK");
} else {
Log::fatal("json 值读取 a!=1 错误");
}
关于 LearnKu
类泛型语法,支持任意类型使用查询
打游记 搞这个没意义
没必要了吧,路很漫长,受众人群少。看你研究这个的目地是什么? 如果你财务自由,闲致兴趣,可以搞。 如果是对php有情怀,用爱发电,还是把精力留给家人。
你在对一个没发布的东西要求稳定性哦,现在只能是作为一个高端玩具作为目标,PHP 语法都有,不能算简单实现。简单只是主观感觉。
重构php,我不怀疑你的目标,但你知道这个工程量和技术要求有多高吗?先不要讲什么宏大目标,建议先从现有的做起,例如fpm模式支持异步调度,并被php官方接纳合入,能做到这一点,我觉得你的决心有希望实现。
任重道远,加油吧
差不多完工了可以开源出来,如果效果好的话可以社区维护的
生态这个事任重道远
还真搞了?不是说说而已
QQ群: 1054052094
这不是和ts很像,不如直接用ts了 :joy:
只是能说,社区不是QQ群。
PHP的上限在这里了,从PHP7最后一次性能大提升(JIT)后,至今没有革命性的更新。只有一些小打小闹,比如nullsafe语法、属性钩子、枚举、Firstclass语法、命名参数、联合类型等等,这些只能微小地提升开发体验,并不能解决根本问题。
传统多线程一直是PHPer渴求的“先进”功能,但是PHP/Python的引用计数GC从根本上就不可能实现传统多线程,Python为了保证引用计数原子性搞了个GIL锁,PHP更狠直接彻底隔离线程,要实现传统多线程就得改成Java/C#那种分代GC。
原生协程也是急需的功能,社区有Swoole Hook原生函数的方案,还有AMPHP自己实现了一套异步API,在PHPer眼里都是旁门左道,毕竟没有官方背书。另外协程跟多线程也是相辅相成的,Rust、C#、Golang这些语言都有协程在线程之间调度的运行时,Swoole和amphp在实现异步的时候没有顺手实现传统多线程,所以他们的异步是残缺的。
还有更经典的单个二进制文件问题了,这个涉及部署和加密两个方面。PHP部署一堆文件,配置半天环境,客户自己有服务器还要担心源码泄露,找各种加密方案,又要担心本来性能就低的PHP因为加密性能变得更低了。。。隔壁Golang、Rust一个二进制文件简单部署,放心把文件交给客户,想要源代码,自己反编译去吧。。。
我感觉你还不如用仓颉语言开发一个laravel框架还现实一点
+1 我感觉你还不如用仓颉语言开发一个 laravel 框架还现实一点
看了一下仓颉的语法,又想 TS,又像 Go。 看名字以为类似 易语言中文编程呢。
开源了 github.com/php-any/origami
肯定有很多人会给你很多的质疑和否定的声音,这个是很普遍的"嘴脸"!有些人可能需要的是一个结果,可很多事情不一定有结果。既然你下定决心,我希望你能坚持!加油!
加油
想问下大佬,具体是如何实现融合版本的语言的
看是 go 写的,现有php 语法还支持吗?兼容性呢
除了这个,还有生态
比如:支持不带 $ 的变量, 会有不少已有生态不兼容的, phpstan, phpcs 等
首先很赞赏你这种创新精神,希望你能成功。性能,并不是php现在遇到的问题。换种思路,如果出发点和 phpy类似 ,php还是php ,但是可以调用go的特性 ,起码我们这些社区的开发者可以捧捧场,在老项目或新项目有特定的场景就可以去用它 ,但创一个新的语言生态就和仓颉鸿蒙一样了,没有生态支持 路走得很艰难
现在主流编程语言的演化大多是由大型公司主导的,比如 Google 力推 Go,微软打造了 TypeScript——这些语言能跑起来,背后都是资源、市场、推广渠道在持续发力。相比之下,个人或小团队从零构建语言生态,其实难度非常高。
真正让一门语言落地的不只是语法设计,还涉及到推广、兼容性、标准化、工具链构建、第三方库、社区运营等各种层面。这些东西不是靠一条帖子或者一个 QQ 群就能撑起来的,光靠技术是远远不够的。
如果这个项目能换个思路,比如定位为某种嵌入式语言或“胶水语言”,可能更实际一些——类似 Lua 在游戏领域,或 Python 在 AI 和自动化领域的那种“小而美”的生存方式,更容易形成自己的用户群。
牛逼 兄弟
功能基本全了,可以进入测试阶段了