BPC 是一个 PHP Native Compiler,可以将 PHP 源码最终转译成 C 语言,然后编译成动态链接库或可执行程序.
BPC 还内置软件授权机制,最终可实现源码保护、软件授权、二进制打包三合一!
彻底解决 PHP 项目的交付问题.
写在前面: bpc 不是一个开源项目,项目历史可以翻看之前的文章和帖子.
近期由于要把公司项目和开发环境升级到 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 编译器在这些操作系统上运行所依赖的软件包.
[1,2,3]
这种数组的写法,之前需要借助 phptobpc 将 [1,2,3]
转换成 array(1,2,3)
.这两个改进主要是为了方便在 Ubuntu 24.04 上使用 php8.3 开发,使用 bpc 编译发布.
BPC 的扩展开发相比 php 来说要容易很多,比如我自己,到现在还不会开发 php 扩展,只能看一看.
BPC 是使用 bigloo scheme + C 语言开发的,所以扩展开发也需要 scheme + C.
bpc-ext-skeleton 可以作为一个扩展模板,在此基础上开发你自己的扩展即可.
这个扩展将 raylib 引入到 bpc, 现在可以使用 php 开发简单的 raylib 小游戏了.
这个扩展将 raygui 引入到 bpc, 可以用它开发简单的 GUI 小工具.
进一步地, rguilayout 可以通过拖拽生成 GUI 界面,然后导出成 php 代码, bpc 一编译, 一个 GUI 程序就好了.
有些人不喜欢 php+html 混编,我倒是挺喜欢.
BPC 扩展开发过程中,scheme 可以和 C 混编,我也挺喜欢.
如果不喜欢这种混编的形式,那就需要多了解一下 Bigloo: The C interface 了.
我们公司的项目都是 PHPUnit 测试驱动的,测试用例可以有效保障项目平稳安全地升级.
以下项目作为其它 PHP 项目的基础,现已全面支持 bpc 和 php8.3:
也就是说,开发时使用 php8.3 开发,发布时使用 bpc 编译发布.
1
gesse 160 天前
看着不错,有空试试。
|
2
NewYear 159 天前
Ubuntu 服务器不常见吧……受众有点少……
|
3
heguangyu5 OP @NewYear 你确定?
|
4
CodeCodeStudy 159 天前
大佬坚持不懈啊!佩服!
|
5
askfilm 159 天前
厉害
|