1. 背景介绍
phpize 是一个用来为 PHP 模块编译生成配置文件的一个工具,通常是在安装扩展时需要用到的。phpize 命令在 PHP 安装中的 bin 目录下。
然而随着 PHP 版本的升级,phpize 工具也有了不同的版本。在 php7 版本中,phpize 工具已经被废弃了,而被 ext_skel.php
工具代替。
2. 使用 ext_skel.php 代替 phpize
2.1 下载 ext_skel.php
您可以从 https://git.php.net/?p=php-src.git;a=blob_plain;f=ext_skel.php;hb=HEAD 下载 ext_skel.php 文件。
也可以通过以下命令下载:
curl https://git.php.net/?p=php-src.git;a=blob_plain;f=ext_skel.php;hb=HEAD -o ext_skel.php
2.2 创建扩展目录
在终端命令行中输入以下命令,创建扩展模块:
php ext_skel.php --extname=example
这里的 --extname
参数表示自定义扩展名称,可以根据自己的需求随意修改。
2.3 配置扩展
扩展目录创建成功后,可以编辑 config.m4
文件来自定义扩展的编译选项。
例如,定义需要的头文件和库文件:
PHP_ARG_WITH(example, for example support,
[ --with-example Include example support])
if test $PHP_EXAMPLE != "no"; then
AC_DEFINE(HAVE_EXAMPLE, 1, [Whether you have example])
PHP_REQUIRE_CXX()
PHP_ADD_LIBRARY_WITH_PATH(example, /usr/local/lib, EXAMPLE_SHARED_LIBADD)
PHP_SUBST(EXAMPLE_SHARED_LIBADD)
PHP_NEW_EXTENSION(example, example.c,
$ext_shared, "-DEXAMPLE -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1")
fi
2.4 编译扩展
在 ext 目录下执行以下命令即可编译扩展:
phpize
./configure
make
make install
3. 总结
phpize 工具在 php7 中被废弃,使用 ext_skel.php 可以代替 phpize 工具生成扩展模板。通过自定义扩展名称、配置编译选项等,可以很轻松地编写和编译扩展模块。