本文目錄一覽:
GitHub 上有哪些比較有趣的 PHP 項目?
Hprose for php 的加速擴展。其中所包含的 hprose 序列化和反序列化速度秒殺 php 內一切其它序列化擴展的速度,比如 php 序列化,json,msgpack,igbinary等。
cczep後綴是病毒文件嗎
沒事,您可以安裝一個好的殺毒軟件, 查殺病毒,據我所知,現在活着的殺毒軟件都很是不錯。您自己願意用哪個,那個就好。
絕大部分的病毒擴展名是exe,有的腳本病毒的擴展名為VBS、VBE、JS、JSE、WSH、WSF。還有WORD文件(以DOC作為擴展名)也會攜帶病毒。
但其實很多病毒會在它真正的擴展名前添加其他的後綴來迷惑用戶,如.jpg,.txt等,稍不注意就會中招,防範這招的方法就是使文件顯示真正的擴展名,具體方法是:打開任意一個文件夾,選擇“工具–文件夾選項–查看”,把“隱藏已知文件類型的擴展名”前的鉤去掉。
Windows平台怎麼安裝Zephir
目錄結構
Zephir是一個從Phalcon發展出來的項目,採用類似PHP語法的中間語言將代碼編譯為高性能的C擴展。zephir支持面向對象編程,變量類型除了類似PHP的動態類型,還可調用php內置或其他C擴展的函數。
PHP性能問題的解決方案
PHP自動加載文件數太多,函數調用超過1000次是許多php語言框架面臨的問題,所以發展出來諸如Yaf, Swoole,Phalcon這些C語言擴展框架,或者類似workerman,reactphp,phpdaemon這些一次加載的框架。
總的來說減少PHP加載文件的個數,使用內置函數,減少損耗,以提升性能。相比之下,PHP擴展的框架性能還是要比PHP語言框架還要好不少。
什麼是Zephir語言
以往PHP擴展的開發方式就是C/C++,SWIG,現在還多了一個選擇:zephir,從Phalcon發展出來的項目,採用類似PHP語法的中間語言,將代碼編譯為高性能的C擴展。zephir支持面向對象編程,變量類型除了類似PHP的動態類型,還支持靜態類型(有點像FackBook的hack了),而且可以調用php內置或其他C擴展的函數。
zephir編譯流程
zephir整個編譯流程是這樣的:zephir和底層編譯器自動進行編譯優化的,當然也可以自己調整以獲得更好的性能。在ubuntu下的安裝如Zephir官方教程即可,在centos下的安裝請點這裡,也可以參考如下安裝腳本:
su -c ‘yum update’
sudo yum install -y wget
sudo yum install -y vim
sudo yum install -y libtool
sudo yum install -y gcc
sudo yum install -y make
sudo yum install -y re2c
sudo rpm -Uvh
sudo yum install -y php55w
sudo yum install -y php55w-devel
sudo yum install -y php55w-json
sudo yum install -y git-core
git clone
cd /json-c
./autogen.sh
./configure
make
make install
git clone
cd zephir
./install -c
zephir help
Zephir安裝完成如下圖所示:
按照教程創建Zephir示例:
zephir init utils
cd utils
sudo vim utils/greeting.zep
greeting.zep代碼如下:
namespace Utils;
class Greeting
{
public static function say()
{
echo”hello world!”;
}
}
Zephir編譯安裝
zephir build
注意,我在php5.3下面這麼編譯都不行,在php5.5/php5.4的版本基本沒有碰到什麼問題,然後更改php.ini:
sudo vim /etc/php.ini
在php.ini中加上以下內容
;zephir編譯的擴展需要依賴json.so,需要提前加載
[json]
;如果php.ini中沒有則加上,有則去掉;
extension=json.so
[utils]
extension=utils.so
查看php可用擴展命令:php -i
注意:如果提示undefined symbol: php_json_decode_ex in Unknown on line 0,則是php json擴展未加載,在php.ini打開就行了,加載json.so後又提示PHP Warning: Module json already loaded,則是已經在其他地方加載了該擴展,找出並注釋掉。我的是在php.d下面的json.ini裡面:
sudo vim /etc/php.d/json.ini
[json]
;已經在php.ini中加載了,為避免重複加載注釋掉
;extension = json
加載成功後的效果:
創建一個php腳本來試一下
cd ~/utils
sudo vim greeting.php
greeting.php代碼如下:
?php
echo UtilsGreeting::say(),”n”;
保存並運行如下圖:
至此你的zephir編譯的擴展已經成功了,趕緊翻譯你的PHP代碼去吧,參考這篇教程,計算斐波拉契數列在我的環境下是這樣的:
性能提升還是挺明顯的,而且在靜態類型(強類型)下面還能比動態類型再提升。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/243964.html