heguangyu5
V2EX  ›  PHP

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

  •  
  •   heguangyu5 · Dec 15, 2023 · 2013 views
  •   You need to sign in to view this topic
    This topic created in 923 days ago, the information mentioned may be changed or developed.

    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

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5447 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 01:39 · PVG 09:39 · LAX 18:39 · JFK 21:39
    ♥ Do have faith in what you're doing.