我打算重构一个新的 PHP, 有帮忙维护生态的吗

QQ群: 1054052094

实现 PHP 生态经常讨论的不兼容的更新,比如:

  1. 多线程、原生协程
  2. 环境只有一个二进制文件
  3. 拆分数组和对象,例如解决前端经常遇到的 [] 和 {} 问题
  4. 允许没有美元符号作为变量
  5. 原生 html 渲染
  6. 支持常驻也支持在某一行代码开始,后续代码支持热更新

代码预览

$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 错误");
}
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 52

类泛型语法,支持任意类型使用查询

namespace tests;

class Users {
    public $name = "";
}

class DB<T> {
    public $where = {};

    public function __construct() {

    }

    public function where($key, $value) {
        $this->where[$key][] = $value
        return $this;
    }

    public function get() {
        return [
            new T(),
        ];
    }
}

$list = DB<Users>()->where("name", "张三")->get();

dump($list, "OK");

$lsUser: Users = select * from Users where name = "张三";
1个月前 评论
Dcatplus-杨光 1个月前
oyes (作者) (楼主) 1个月前

打游记 搞这个没意义

1个月前 评论
Dcatplus-杨光

没必要了吧,路很漫长,受众人群少。看你研究这个的目地是什么? 如果你财务自由,闲致兴趣,可以搞。 如果是对php有情怀,用爱发电,还是把精力留给家人。

1个月前 评论
oyes (楼主) 1个月前
Dcatplus-杨光 (作者) 1个月前
Dcatplus-杨光 (作者) 1个月前
Noctis 1个月前
oyes (楼主) 1个月前

你在对一个没发布的东西要求稳定性哦,现在只能是作为一个高端玩具作为目标,PHP 语法都有,不能算简单实现。简单只是主观感觉。

1个月前 评论
Dcatplus-杨光 1个月前
seaman 1个月前

重构php,我不怀疑你的目标,但你知道这个工程量和技术要求有多高吗?先不要讲什么宏大目标,建议先从现有的做起,例如fpm模式支持异步调度,并被php官方接纳合入,能做到这一点,我觉得你的决心有希望实现。

1个月前 评论
oyes (楼主) 1个月前
oyes (楼主) 1个月前
yangweijie 1个月前
lovewei (作者) 1个月前
yangweijie 1个月前
syaoran 1个月前

任重道远,加油吧

1个月前 评论

差不多完工了可以开源出来,如果效果好的话可以社区维护的

1个月前 评论

生态这个事任重道远

1个月前 评论
CodingHePing

还真搞了?不是说说而已

1个月前 评论
oyes (楼主) 1个月前

QQ群: 1054052094

1个月前 评论

这不是和ts很像,不如直接用ts了 :joy:

1个月前 评论

只是能说,社区不是QQ群。

1个月前 评论
Jyunwaa

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一个二进制文件简单部署,放心把文件交给客户,想要源代码,自己反编译去吧。。。

1个月前 评论
oyes (楼主) 1个月前

我感觉你还不如用仓颉语言开发一个laravel框架还现实一点

1个月前 评论
oyes (楼主) 1个月前

+1 我感觉你还不如用仓颉语言开发一个 laravel 框架还现实一点

1个月前 评论
oyes (楼主) 1个月前

看了一下仓颉的语法,又想 TS,又像 Go。 看名字以为类似 易语言中文编程呢。

1个月前 评论
oyes (楼主) 1个月前

肯定有很多人会给你很多的质疑和否定的声音,这个是很普遍的"嘴脸"!有些人可能需要的是一个结果,可很多事情不一定有结果。既然你下定决心,我希望你能坚持!加油!

1个月前 评论
ononl 1个月前
oyes (楼主) 1个月前

加油

1个月前 评论
oyes (楼主) 1个月前

想问下大佬,具体是如何实现融合版本的语言的

1个月前 评论
oyes (楼主) 1个月前

社区里隐藏着不少高手啊

1个月前 评论

看是 go 写的,现有php 语法还支持吗?兼容性呢
除了这个,还有生态

比如:支持不带 $ 的变量, 会有不少已有生态不兼容的, phpstan, phpcs 等

1个月前 评论
kis龍 (作者) 1个月前

首先很赞赏你这种创新精神,希望你能成功。性能,并不是php现在遇到的问题。换种思路,如果出发点和 phpy类似 ,php还是php ,但是可以调用go的特性 ,起码我们这些社区的开发者可以捧捧场,在老项目或新项目有特定的场景就可以去用它 ,但创一个新的语言生态就和仓颉鸿蒙一样了,没有生态支持 路走得很艰难

1个月前 评论
oyes (楼主) 1个月前

现在主流编程语言的演化大多是由大型公司主导的,比如 Google 力推 Go,微软打造了 TypeScript——这些语言能跑起来,背后都是资源、市场、推广渠道在持续发力。相比之下,个人或小团队从零构建语言生态,其实难度非常高。

真正让一门语言落地的不只是语法设计,还涉及到推广、兼容性、标准化、工具链构建、第三方库、社区运营等各种层面。这些东西不是靠一条帖子或者一个 QQ 群就能撑起来的,光靠技术是远远不够的。

如果这个项目能换个思路,比如定位为某种嵌入式语言或“胶水语言”,可能更实际一些——类似 Lua 在游戏领域,或 Python 在 AI 和自动化领域的那种“小而美”的生存方式,更容易形成自己的用户群。

1个月前 评论
oyes (楼主) 1个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!