中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP編譯器BPC6.0的新功能有哪些

發布時間:2022-12-27 11:41:48 來源:億速云 閱讀:96 作者:iii 欄目:編程語言

這篇文章主要介紹“PHP編譯器BPC6.0的新功能有哪些”,在日常操作中,相信很多人在PHP編譯器BPC6.0的新功能有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PHP編譯器BPC6.0的新功能有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

1. 支持 namespace

前些天看到 nikic/PHP-Parser 的 文檔, 發現PHP的namespace可以很容易地轉化.

于是就照著文檔寫了一個 phptobpc.php, 借助這個小程序,可以將使用namespace的PHP代碼轉為沒有namespace的.

當然BPC自身也做了相應的支持,這樣動態調用也沒問題.比如:

<?php
$classname = '\\Foo\\Bar\\Baz';
$o = new $classname;

我把這個程序打包成 phptobpc.phar, 下載回來 chmod +x 就能使用.

2. 支持 closure

BPC之前就已經支持簡單的匿名函數,比如:

<?php
$a = array(1,2,3);
usort($a, function ($a, $b) { ... });

BPC 6.0完善了closure實現,支持use,typehint,default value等特性,比如:

<?php
$a = 1;$b = 2;
$f = function (array $arg1, &$arg2, $arg3 = 1) use ($a, &$b) { ... };

3. 成功編譯 workerman

之前有網友說能不能把 workerman 整個編譯起來.

現在支持了 namespace 和 closure, 正好可以編譯 workerman 試一試.

由于編譯后執行和PHP解釋執行還是有一些區別,要想成功編譯和運行,需要對workerman的代碼做一些微調.

整體來說,調整量很小.感興趣的可以去查看 git commit .

由于 workerman 沒有 unit tests, 我們自己也沒有 workerman 的項目,所以不好做完整的驗證.

但我照著 workerman手冊, 寫了以下幾個例子:

  • start.php

  • ws_test.php

  • tcp_test.php

  • SimpleChat.php

  • BinaryTransfer.php

  • TextTransfer.php

運行起來,測試了一下,沒有問題.

start start -d stop restart status connections 這些命令都OK.

但是由于編譯后只有一個二進制文件,reload顯然是達不到預期效果的.

這幾個例子我都靜態編譯出來了,想動手試一下的直接 下載 回來 gunzip 然后 chmod +x 執行即可 (注意只能在ubuntu 18.04上運行).

想自己動手編譯的,參看 src/Makefile 和 examples/build.sh

4. 幾個常見問題?

  • BPC是否開源?

    BPC是我們公司的內部項目,不打算開源.

    商業化策略還未確定,在正式商業化前,我們每次release都會帶一個約7天的試用license,如果過期了還想試用,只要給我們發個郵件我們就會再給license.

    如果想要就此項目進行深度合作,可以發郵件到 YnBjQG91cmF0cy5jb20=

  • BPC 和 VKCOM/kphp 以及 peachpiecompiler/peachpie 有什么區別?

BPC的目標是源碼保護和軟件授權(最終編譯為C),在此基礎上盡可能和PHP兼容,也就是說,一個php腳本最好什么都不改就能編譯成二進制.

kphp的目標是性能(編譯為C++),為此,它僅支持 limited subset of PHP, 參看 KPHP vs PHP differences

peachpie的目標也是性能(編譯為C#),同時將.NET引進來了.

  • BPC 和 Zend Guard, ionCube 以及 Swoole Compiler 有什么區別?

Zend Guard, ionCube和Swoole Compiler都是在PHP opcode的基礎上進行源碼保護的.

BPC應該來說和它們不是一類東西,只是目標相同罷了,BPC和kphp peachpie算是一類.

到此,關于“PHP編譯器BPC6.0的新功能有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

旅游| 常山县| 望城县| 松潘县| 环江| 灵丘县| 于田县| 宾川县| 洱源县| 汝州市| 乌兰浩特市| 广灵县| 嵩明县| 云南省| 东乌| 松阳县| 壤塘县| 竹溪县| 龙胜| 嘉定区| 江安县| 迁西县| 鞍山市| 柘城县| 康乐县| 任丘市| 高平市| 塔城市| 涿鹿县| 临潭县| 施秉县| 河池市| 泰安市| 大同市| 晋州市| 仁布县| 泽普县| 竹溪县| 阜城县| 江北区| 化隆|