本文目录一览:
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代码去吧,参考这篇教程,计算斐波拉契数列在我的环境下是这样的:
性能提升还是挺明显的,而且在静态类型(强类型)下面还能比动态类型再提升。