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 编译发布.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.