在 phpinfo() 输出中公开扩展版本

Posted

技术标签:

【中文标题】在 phpinfo() 输出中公开扩展版本【英文标题】:Expose version of extension in phpinfo() output 【发布时间】:2016-12-15 11:38:27 【问题描述】:

在为 php 编写自定义扩展时,您通常会在扩展的头文件中定义一个版本字符串,例如像

#define PHP_MYEXT_VERSION "0.1.0"

然后,当在用户态 PHP 中调用 phpversion('myext') 时,PHP 将使用它来提供有关扩展程序版本的信息。

但是,默认情况下,版本字符串不会在phpinfo() 的输出中呈现。一些扩展,比如 ext/json,确实在phpversion() 的输出中列出了它们的版本。

如何在phpinfo()中暴露版本?

【问题讨论】:

【参考方案1】:

您可以通过在 myext.c 文件中提供 PHP_MINFO_FUNCTION 函数来定义在 phpinfo() 的输出中为您的扩展显示哪些信息。

来自ext/json的例子:

/*  PHP_MINFO_FUNCTION
*/
static PHP_MINFO_FUNCTION(json)

    php_info_print_table_start();
    php_info_print_table_row(2, "json support", "enabled");
    php_info_print_table_row(2, "json version", PHP_JSON_VERSION);
    php_info_print_table_end();

/*  */

这将产生如下输出:

json

json support => enabled
json version => 1.4.0

【讨论】:

以上是关于在 phpinfo() 输出中公开扩展版本的主要内容,如果未能解决你的问题,请参考以下文章

phpinfo在哪个文件夹里能找到啊?

在win10上的xampp集成环境中安装mongo扩展

CentOS7为php7.2安装php-redis扩展(redis环境搭建二)

php5.4成功安装imageMagick, windows7下。(phpinfo中显示不出来是因为:1.imagick软件本身php本身php扩展三方版本要一致,2.需要把CORE_RL_*.d

安装多个PHP环境会导致phpinfo和php -v中查看到的PHP版本不一致

PHP版本替换, phpinfo和php -v显示版本信息不一致