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

PHP 编译器 BPC 7.2 发布,全面支持 Ubuntu 18.04/20.04/22.04/24.04,可自行开发扩展

  •  1
     
  •   heguangyu5 · 129 天前 · 1865 次点击
    这是一个创建于 129 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    How BPC Works

    1. 官网 bpc.dev
    2. 安装使用文档

    写在前面: bpc 不是一个开源项目,项目历史可以翻看之前的文章和帖子.

    1. 全面支持 Ubuntu 18.04/20.04/22.04/24.04

    近期由于要把公司项目和开发环境升级到 Ubuntu 24.04,所以一并把 BPC 升级了,并且连带着也把 Ubuntu 20.04/22.04 支持了.

    这里说 支持 是指在 Ubuntu 18.04/20.04/22.04/24.04 操作系统环境下跑通了 bpc-php-7.2.19-tests 测试用例.

    安装使用文档 详细说明了 BPC 编译器在这些操作系统上运行所依赖的软件包.

    2. PHP 语法支持加强

    1. 支持 [1,2,3] 这种数组的写法,之前需要借助 phptobpc[1,2,3] 转换成 array(1,2,3).
    2. 忽略函数/方法的返回类型,之前需要借助 phptobpc 将返回类型去掉.

    这两个改进主要是为了方便在 Ubuntu 24.04 上使用 php8.3 开发,使用 bpc 编译发布.

    3. 开放扩展开发

    BPC 的扩展开发相比 php 来说要容易很多,比如我自己,到现在还不会开发 php 扩展,只能看一看.

    BPC 是使用 bigloo scheme + C 语言开发的,所以扩展开发也需要 scheme + C.

    bpc-ext-skeleton 可以作为一个扩展模板,在此基础上开发你自己的扩展即可.

    4. BPC 扩展示例: raylib/raygui

    1. bpc-ext-raylib

      这个扩展将 raylib 引入到 bpc, 现在可以使用 php 开发简单的 raylib 小游戏了.

    2. bpc-ext-raygui

      这个扩展将 raygui 引入到 bpc, 可以用它开发简单的 GUI 小工具.

      进一步地, rguilayout 可以通过拖拽生成 GUI 界面,然后导出成 php 代码, bpc 一编译, 一个 GUI 程序就好了.

    有些人不喜欢 php+html 混编,我倒是挺喜欢.

    BPC 扩展开发过程中,scheme 可以和 C 混编,我也挺喜欢.

    如果不喜欢这种混编的形式,那就需要多了解一下 Bigloo: The C interface 了.

    5. BPC 相关项目支持 php8.3

    我们公司的项目都是 PHPUnit 测试驱动的,测试用例可以有效保障项目平稳安全地升级.

    以下项目作为其它 PHP 项目的基础,现已全面支持 bpc 和 php8.3:

    1. bpc-phpunit.phar-4.8.36
    2. phpunit-ext
    3. zf1
    4. phpunit-ext-zend

    也就是说,开发时使用 php8.3 开发,发布时使用 bpc 编译发布.

    5 条回复    2024-07-15 18:16:14 +08:00
    gesse
        1
    gesse  
       129 天前
    看着不错,有空试试。
    NewYear
        2
    NewYear  
       129 天前
    Ubuntu 服务器不常见吧……受众有点少……
    heguangyu5
        3
    heguangyu5  
    OP
       129 天前
    @NewYear 你确定?
    CodeCodeStudy
        4
    CodeCodeStudy  
       129 天前
    大佬坚持不懈啊!佩服!
    askfilm
        5
    askfilm  
       129 天前
    厉害
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3731 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:31 · PVG 18:31 · LAX 02:31 · JFK 05:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.