BPC是一個PHP Native Compiler,可以將PHP源碼最終轉(zhuǎn)譯成C語言,然后編譯成動態(tài)鏈接庫或可執(zhí)行程序.
BPC還內(nèi)置軟件授權機制,最終可實現(xiàn)源碼保護、軟件授權、二進制打包三合一!
徹底解決PHP項目的交付問題.
BPC 7.0 最重要的更新就是支持了PHP的 Generator(yield / yield from) 和 Trait 特性.
有了這兩個特性,應該有一大波php項目BPC都能成功編譯了.
支持了Generator也就意味著BPC具有了異步的能力,如果繼續(xù)做,支持PHP 8.1引入的Fiber應該也沒問題.
一如既往, Generator和Trait已通過php-7.2.19的phpt測試用例.
但為了進一步驗證Generator和Trait實現(xiàn)的可靠性,我們成功編譯了 amphp/amp-2.x 并通過了它的 phpunit 測試用例. (amp-3.x基于Fiber, amp-2.x基于yield,所以我們選擇了2.x)
amp-2.x依賴 reactphp/promise-2.x, 因此,我們也成功編譯了 reactphp/promise-2.x 并通過了它的 phpunit 測試用例.
支持 finally 和 multi catch
之前BPC僅支持 try {} catch (Exception $e) {}
,
現(xiàn)在 try {} catch (ExceptionA | ExceptionB $e) {} finally {}
也支持了.
實現(xiàn)了 forward_static_call / forward_static_call_array
支持 static function () {}
有客戶希望能將我們的核心產(chǎn)品云招OurATS(一個招聘管理系統(tǒng))部署到銀河麒麟操作系統(tǒng)上,因此花了點時間測試了一下.
bpc-php-7.2.19-tests >99%的測試用例都順利通過,因此只要再花一點時間完善,100%支持銀河麒麟問題不大.
BPC Playground 已增加 yield / yield from / amp 示例, 感興趣的朋友可以在線嘗試.