php扩展hidef

转载 2013年12月01日 23:02:45
官网:http://pecl.php.net/package/hidef
简介:
  Allow definition of user defined constants in simple ini files, which are then processed like internal constants, without any 
of the usual performance penalties.
  允许使用简单的ini文件来定义需要的常量,就像使用内部变量一样,而且没有使用Define的性能问题。

作者说Hidef is initialized in php module init, before apache starts spawning children.
在apache启动前,PHP启动时创建并初始化了这些常量,这样就不需要在php里define常量了,性能自然没有任何问题了!
在Nginx下同样可用,以下是安装过程:

1、下载并解压进入目录

# wget http://pecl.php.net/get/hidef-0.1.8.tgz
# tar zxvf hidef-0.1.8.tgz
# cd hidef-0.1.8

2、没有configure文件,执行phpize创建该文件

# /usr/local/webserver/php/bin/phpize
# ./configure --enable-hidef --with-php-config=/usr/local/webserver/php/bin/php-config
# make
# make install

3、添加到php.ini文件里面

# vi /usr/local/webserver/php/etc/php.ini

-----------------------------------------------
extension=hidef.so
hidef.ini_path=/usr/local/webserver/php/etc/
------------------------------------------------------------------------------

注意,如果php.ini文件里面没有定义hidef.ini_path,则默认.ini文件读取位置为/hidef,只需手工创建文件 vi /hidef/hidef.ini即可。

# vi /usr/local/webserver/php/etc/hidef.ini(此处根据情况自己调整路径)
复制代码 代码如下:

[hidef] 
int ANSWER = 42; 
str HX = "9enjoy"; 
float PIE = 3.14159; 

这里整数用int,浮点数用float,字符串用str。
字符串str的值使用双引号来包含,或者直接写字符串内容。如果使用单引号,将会把单引号也做为字符串的内容。
如str HX="9enjoy",实际存储的不是9enjoy,是"9enjoy"。

4、重新加载php-fpm即可

# /usr/local/webserver/php/sbin/php-fpm reload

此时,查看phpinfo()的结果,在hidef处就可以看到定义的变量。


-----------------------------------------------------------------------------

附:

如果使用了APC,apc提供了定义常量的方法。apc_define_constants和apc_load_constants。apc_define_constants将常量转为数组存到一个user cache中。虽然把常量存在了内存中,但每次PHP请求时,仍然需要读cache,分别定义,因此也不会有什么明显的性能提升。我测试了下定义25个常量,使用apc的函数比直接定义常量快了0.01ms。

这样使用:
if(!apc_load_constants("defined")) {
$constants = array(
"HX" => TRUE,
"D_BUG" => 1
);
apc_define_constants("defined", $constants);
}

define() is notoriously slow. Since the main benefit of APC is to increase the performance of scripts/applications, this mechanism is provided to streamline the process of mass constant definition. However, this function does not perform as well as anticipated. 

For a better-performing solution, try the hidef extension from PECL. 

APC的文档中推荐使用hidef。

相关文章推荐

PHP中使用hidef扩展代替define提高性能

这篇文章主要介绍了PHP中运用hidef拓展替代define进步功能,这篇文章着重测验hidef的功能,一起介绍了装置办法和运用示例,需求的兄弟能够参阅下...

hidef.h

  • 2013年05月03日 13:53
  • 2KB
  • 下载

PHP:在Yii Framework中扩展使用PHPMailer发送邮件

首先,你得去Yii官方下载mailer扩展组件,官方扩展链接:http://www.yiiframework.com/extension/mailer/。       由于PHPMailer是不断更新...

redis3.2.100 64位 redis-php5.6扩展

  • 2017年11月09日 23:03
  • 4.53MB
  • 下载

Linux下php安装mcrypt扩展

说明: 操作系统:CentOS 5.x 64位 已安装php版本:php-5.4.4 已安装php路径:/usr/local/php 实现目的: 在不影响网站访问的情况下...

PHP扩展开发及内核应用

  • 2017年11月13日 17:55
  • 224KB
  • 下载

php7.1 oci8扩展

  • 2016年12月13日 17:31
  • 681KB
  • 下载

Linux下安装Kafka和PHP的相关扩展

Linux下安装Kafka和PHP的相关扩展 以下操作在 Ubuntu 16.04 下进行,其他系统可能略有不同: 安装kafka 配置防火墙,开启9092端口,编辑 \etc\iptables....
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php扩展hidef
举报原因:
原因补充:

(最多只允许输入30个字)