以前PHPからC#を呼び出すdotnet_ffiというExtensionをつくりました。
ただ、PHP8.1やPHP8.0などの環境でビルドすると、動くものの下記のようなWarningが
Warning: Missing arginfo
この場合はZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX や ZEND_BEGIN_ARG_INFO_EX (戻り値がない場合)を使ってarginfoを指定する必要がある模様。
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ret_str_arg_str, 0, 2, IS_STRING, 0)
ZEND_ARG_INFO(0, string_arg1)
ZEND_END_ARG_INFO()
(略)
static const zend_function_entry dotnet_ffi_funcs_entries[] = {
PHP_ME(DotnetFFI, ret_str_arg_str, arginfo_ret_str_arg_str, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
関数の場合は PHP_FE に同様の記載をする模様。
※例によってこれらのPHPのマクロの詳しいドキュメントは見つけられなかったのでPHPのソースから推定
参考
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX の定義
https://github.com/php/php-src/blob/master/Zend/zend_API.h
typeの定義
https://github.com/php/php-src/blob/master/Zend/zend_type_info.h