PHP编译器BPC 7.0发布,支持 Generator/Trait,成功编译 amphp/amp-2.x

BPC是一个PHP Native Compiler,可以将PHP源码最终转译成C语言,然后编译成动态链接库或可执行程序.

BPC还内置软件授权机制,最终可实现源码保护、软件授权、二进制打包三合一!

彻底解决PHP项目的交付问题.

How BPC Works

  1. 官网 bpc.dev
  2. 安装使用文档
  3. Try BPC with Docker
  4. Run BPC Compiled Program with Docker
  5. BPC编译入门示例: Tiny File Manager

1. Generator / Trait / amp-2.x

BPC 7.0 最重要的更新就是支持了PHP的 Generator(yield / yield from) 和 Trait 特性.

有了这两个特性,应该有一大波php项目BPC都能成功编译了.

支持了Generator也就意味着BPC具有了异步的能力,如果继续做,支持PHP 8.1引入的Fiber应该也没问题.

一如既往, Generator和Trait已通过php-7.2.19的phpt测试用例.

但为了进一步验证Generator和Trait实现的可靠性,我们成功编译了 amphp/amp-2.x 并通过了它的 phpunit 测试用例. (amp-3.x基于Fiber, amp-2.x基于yield,所以我们选择了2.x)

amp-2.x依赖 reactphp/promise-2.x, 因此,我们也成功编译了 reactphp/promise-2.x 并通过了它的 phpunit 测试用例.

2. 其它更新

  1. 支持 finally 和 multi catch

    之前BPC仅支持 try {} catch (Exception $e) {},

    现在 try {} catch (ExceptionA | ExceptionB $e) {} finally {} 也支持了.

  2. 实现了 forward_static_call / forward_static_call_array

  3. 支持 static function () {}

3. 初步支持银河麒麟高级服务器操作系统V10

有客户希望能将我们的核心产品云招OurATS(一个招聘管理系统)部署到银河麒麟操作系统上,因此花了点时间测试了一下.

bpc-php-7.2.19-tests >99%的测试用例都顺利通过,因此只要再花一点时间完善,100%支持银河麒麟问题不大.

4. BPC Playground

BPC Playground 已增加 yield / yield from / amp 示例, 感兴趣的朋友可以在线尝试.

bpc-playground

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 2

和swow兼容不?

4个月前 评论
heguangyu5 (楼主) 4个月前

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