Publié les informations sur l'extension
ou refléter les exigences de l'API. Jetons un coup d'oeil. phpinfo()
Recommandations d'apprentissage associées :Hook MINFO()S'il est déclaré, tout fera l'affaire dans le crochet
de la déclaration. S'il n'est pas déclaré, le moteur exécutera une fonction par défaut pour imprimer des informations sur l'extension. Cette fonction imprimera uniquement la version de l'extension et l'entrée INI finale déclarée. MINFO()
dans la structure de l'extension. MINFO()
simple : MINFO()
#include "php/main/SAPI.h" #include "ext/standard/info.h" #define PIB_TXT "PHPInternalsBook Authors" #define PIB_HTML "<h3>" PIB_TXT "</h3>" PHP_MINFO_FUNCTION(pib) { time_t t; char cur_time[32]; time(&t); php_asctime_r(localtime(&t), cur_time); php_info_print_table_start(); php_info_print_table_colspan_header(2, "PHPInternalsBook"); php_info_print_table_row(2, "Current time", cur_time); php_info_print_table_end(); php_info_print_box_start(0); if (!sapi_module.phpinfo_as_text) { php_write(PIB_HTML, strlen(PIB_HTML)); } else { php_write(PIB_TXT, strlen(PIB_TXT)); } php_info_print_box_end(); } zend_module_entry pib_module_entry = { STANDARD_MODULE_HEADER, "pib", NULL, /* Function 入口 */ NULL, /* Module 初始化 */ NULL, /* Module 关闭 */ NULL, /* Request 初始化 */ NULL, /* Request 关闭 */ PHP_MINFO(pib), /* Module information */ "0.1", /* 扩展的版本号写在这里 */ STANDARD_MODULE_PROPERTIES };
qui vous permet d'imprimer des informations sur le flux de sortie généré. Si vous souhaitez imprimer des informations brutes, un simple php_info_print_*()
suffira. php_write()
consiste à traiter les informations que vous transmettez comme un paramètre du flux de sortie SAPI, et l'API php_write()
est la même, mais elle sera formatée selon les exigences précédentes. Si vous souhaitez le format HTML, vous l'utiliserez. Les balises php_info_print_*()
table-tr-td du HTML, si elles n'ont pas besoin d'être formatées en HTML, seront simplement séparées par des espaces.
ext/standard/info.h pour importer l' API, et vous devez également inclure php_info_print_*()
php/main/SAPI .h pour obtenir le symbole . Ce symbole est global et représente le sapi_module
SAPI utilisé par le processus PHP actuel. Le champ vous indique si vous allez écrire un SAPI "Web" comme phpinfo_as_text
php-fpm ou écrire un "texte" comme php-cli ( SAPI).
hook est le suivant : MINFO()
phpinfo()
php -i
, php-cgi -i
. Ou une expression plus abstraite est php-fpm -i
<sapi_binary> - i</sapi_binary>
php --ri
ReflectionExtension::info()
Remarque : doit faire attention au résultat format. Si vous avez besoin d'effectuer une conversion entre texte et HTML, consultezSi vous souhaitez afficher vos paramètres INI, appelez simplement la macro. Vous n'avez aucun moyen de savoir comment sont appelées les informations étendues côté client.
sapi_module.phpinfo_as_text
dans votre MINFO()
. Pour l'analyse de cette macro, voir display_ini_entries().DISPLAY_INI_ENTRIES()
hook est le suivant : MINFO()
phpinfo()
php -i
, php-cgi -i
. Ou une expression plus abstraite est php-fpm -i
<sapi_binary> - i</sapi_binary>
php --ri
ReflectionExtension::info()
Remarque : doit faire attention au résultat format. Si vous avez besoin d'effectuer une conversion entre texte et HTML, consultezSi vous souhaitez afficher vos paramètres INI, appelez simplement la macro. Vous n'avez aucun moyen de savoir comment sont appelées les informations étendues côté client.
sapi_module.phpinfo_as_text
dans votre MINFO()
. Pour l'analyse de cette macro, voir display_ini_entries().DISPLAY_INI_ENTRIES()
structure. Par exemple, lorsque vous appelez zend_module_entry
, l'API lira uniquement le champ version de la structure ReflectionExtension::getVersion()
. zend_module_entry
possède un membre zend_module_entry
qui est utilisé pour enregistrer les fonctions PHP. const struct _zend_function_entry * functions
Fondamentalement, l'API de réflexion PHP userland lit simplement votre zend_module_entry
structure et publie ces informations. Il peut également utiliser votre module_number
pour collecter des informations sur les extensions enregistrées à différents endroits du moteur. Par exemple, ReflectionExtension::getINIentries()
ou ReflectionExtension::getClasses()
utilisez ceci.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!