PHP编译器BPC 5.0发布了

之所以要发个新版本,是因为开发BPC的初始目标要达成了!
__

我们是一家做SASS招聘管理系统的公司,主产品名叫OurATS.

这个领域产品不多,一个手掌就能数过来.

大家在应聘面试过程中,说不定就曾收到过来自OurATS的面试邀请信.

这几年来,由于大家数据安全意识的提高,加上2B项目的特殊性,本地部署的需求越来越多.

OurATS是用PHP开发的,PHP项目本地部署说白了就是交付源码,这是我们不想要的.

经过一番调研,我们决定开发自己的PHP编译器.

将PHP转译成C,然后编译成二进制,这能完美解决PHP源码保护的问题.

于是BPC就诞生了.

在开发BPC的过程中,我们发现,可以通过编译器解决软件授权问题.

这下本地部署的两个关键,源码保护和软件授权全都解决了!

__

经过两年的开发,到这几天,我们终于成功编译了OurATS及其附属支撑项目的代码.

由于OurATS是有完善的PHPUnit测试用例保障的,所以成功编译OurATS也是对BPC的一次强有力的检验.

__

BPC 5.0 还有一个亮点就是引进了ninja构建工具,从而可以并行编译.

当你的项目有成千上万个PHP文件时,并行编译能大大缩短编译时间.

__

截止到 BPC 5.0, 我们已经实现了以下PHP扩展(个别扩展只实现了部分函数和类):

  • standard
  • posix
  • date
  • pcre
  • mbstring
  • json
  • fileinfo
  • session
  • filter
  • curl
  • spl
  • pdo
  • pdo_mysql
  • pdo_sqlite
  • openssl
  • ctype
  • pcntl
  • hash
  • simplexml
  • iconv
  • gd
  • imagick
  • scws
  • sysvsem
  • tinycdb
  • zip
  • zlib

see bpc-php-7.2.19-tests

再列3个BPC编译的成功案例:

欢迎大家下载试用:

github.com/bob-php-compiler/bpc-re...

使用指南在这里:

github.com/bob-php-compiler/bpc-re...

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 1年前 自动加精
讨论数量: 10

厉害了,空了试试

1年前 评论

厉害了,什么时候可以支持swoole啊

1年前 评论
heguangyu5 (楼主) 1年前

厉害了,只知道之前swoole也出了商业版的加密。

1年前 评论

这个好,因为公司的技术大多是 php 的,更新换代成本太高,每次碰到这种问题,就要头疼很久,中间尝试了几次魔改,写扩展,但是都无法彻底解决问题,成本太高,都不了了之了,经过很长时间的折磨,最终强制他们都换了 go 了,自己搭建了一个类似于 php 常用的框架,目前还在用,回头也试试这个,之前魔改就是想改这种来着,可惜,一个人时间也不够,精力不够,能力也不太够,哈哈,这个很不错,很牛批

1年前 评论

有一点比较担心的是,php 编译成 c 的话,效率怎么样,这个跟哪个 Zephir 比较有没有优化的地方,原理是不是不同,还没研究,先提前问问,主要是手里比较忙,抽不开空,先了解下原理,回头看的时候比较快 :smiling_imp:

1年前 评论
heguangyu5 (楼主) 1年前

这个编译器函数运行的时候能 hooks 吗,如果有的话,开发者还是能拿到

1年前 评论

看了前边的文章,是编译成执行文件的,那我明白了,不用抽空答复我了,嘿嘿

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!