PHP 拡張機能の作成方法を段階的に説明します (基本的な手順)

不言
リリース: 2023-04-03 22:30:02
オリジナル
1821 人が閲覧しました

この記事の内容は、php 拡張機能の作成方法 (基本的な手順) を段階的に説明するものです。一定の参考価値があります。必要な友人は参照できます。お役に立てれば幸いです。

拡張機能を作成する基本的な手順は何ですか。例では以下の関数を実装します。

<?php
echo say();
?>
ログイン後にコピー

出力内容:

$ php ./test.php
$ hello word
ログイン後にコピー

拡張機能にsayメソッドを実装し、sayメソッド呼び出し後、hello wordを出力します。

ステップ 1: コードの生成

PHP には、基本的なコードを生成するためのツール ext_skel が用意されています。このツールは、PHP ソース コードの ./ext ディレクトリにあります。

$ cd php_src/ext/
$ ./ext_skel --extname=say
ログイン後にコピー

extname パラメータの値は拡張機能名です。 ext_skelコマンドを実行すると、カレントディレクトリに同じ拡張子のディレクトリが生成されます。

2 番目のステップは、config.m4 構成ファイルを変更することです。

config.m4 の機能は、phpize ツールと連携して構成ファイルを生成することです。構成ファイルは環境の検出に使用されます。拡張機能のコンパイルと実行に必要な環境が満たされているかどうかを確認してください。次に、config.m4 ファイルの変更を開始します。

$ cd ./say
$ vim ./config.m4
ログイン後にコピー

config.m4 ファイルを開くと、次の段落が表示されます。

dnl 拡張機能が外部のものを参照している場合は、 with:

dnl PHP_ARG_WITH(たとえば、support,
dnl コメントが整列していることを確認してください:
dnl [ - -with-say 発言サポートを含める])

dnl それ以外の場合は、enable:

dnl PHP_ARG_ENABLE(発言、発言サポートを有効にするかどうか、
dnl コメントが整列していることを確認してください:
dnl [ --enable-say Say support を有効にする])

このうち、dnl はコメント記号です。上記のコードは、作成した拡張機能が他の拡張機能または lib ライブラリに依存している場合、PHP_ARG_WITH 関連コードのコメントを削除する必要があることを示しています。それ以外の場合は、PHP_ARG_ENABLE 関連のコード セクションのコメントを解除します。私たちが作成する拡張機能は、他の拡張機能や lib ライブラリに依存する必要はありません。したがって、PHP_ARG_ENABLE の前のコメントを削除します。コメントを削除した後のコードは次のとおりです。

dnl 拡張機能が外部のものを参照している場合は、 with:

dnl PHP_ARG_WITH(たとえば、support,
dnl を使用してください。コメントは整列しています ; コメントは整列しています:
[ --enable-say Say サポートを有効にする])

3 番目のステップは、コードを実装することです

say.c ファイルを変更します。 Say メソッドを実装します。
PHP_FUNCTION(confirm_say_compiled) を見つけて、その上に次のコードを追加します:

PHP_FUNCTION(say)
{
    zend_string *strg;
    strg = strpprintf(0, "hello word");
    RETURN_STR(strg);
}
ログイン後にコピー

PHP_FE(confirm_say_compiled) を見つけて、その上に次のコードを追加します:

PHP_FE(say, NULL)
ログイン後にコピー

変更されたコードは次のとおりです。

 const zend_function_entry say_functions[] = {
 PHP_FE(say, NULL)       /* For testing, remove later. */
 PHP_FE(confirm_say_compiled,    NULL)       /* For testing, remove later. */
 PHP_FE_END  /* Must be the last line in say_functions[] */
 };
/ }}} /
ログイン後にコピー

4 番目のステップ、コンパイルとインストール

拡張機能をコンパイルする手順は次のとおりです。

$ phpize
$ ./configure
$ make && make install
ログイン後にコピー

php.ini ファイルを変更し、次のコードを追加します。

[say]
extension = say.so
ログイン後にコピー

その後、php -m コマンドを実行します。出力内容に、say という単語が表示されます。

5 番目のステップは、テストを呼び出すことです

自分でスクリプトを作成します

関連する推奨事項:

[転送] 独自の PHP 拡張機能を記述してクラスを作成する - orlion

PHP 拡張機能を最初から作成する

以上がPHP 拡張機能の作成方法を段階的に説明します (基本的な手順)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート