V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
heguangyu5
V2EX  ›  PHP

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

  •  
  •   heguangyu5 · 2023-12-15 15:54:32 +08:00 · 1098 次点击
    这是一个创建于 377 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3631 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 05:04 · PVG 13:04 · LAX 21:04 · JFK 00:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.