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编译发布.
普通人搭建不起来,没法用
在Ubuntu系统上就是解压安装就完了,是哪里遇到问题了呢?
之前也有视频的,你可以参考一下: https://www.workerman.net/a/1585
centos7 不支持啊
之前在编译wordpress时尝试过centos7,发现它的libc版本太低了,然后就没再试了.
理论上来说,linux-x64应该都可以,就是要解决软件包依赖,然后编译测试一下.