ホームページ >バックエンド開発 >PHPチュートリアル >PHP 拡張機能の作成を開始する

PHP 拡張機能の作成を開始する

WBOY
WBOYオリジナル
2016-07-29 09:15:20910ブラウズ

この記事では、単純な PHP 拡張機能 hello_world を作成することで、PHP 拡張機能がどのように作成されるかを説明します。この拡張機能には実用性はなく、純粋に拡張機能の作成方法を学ぶために使用されます。実際に実際的な PHP 拡張機能を自分で作成したい場合は、ZEND API に精通しており、C 言語に対する高い要件が必要です。

さて、本題に入りましょう。

1. PHP ソース コードの ext ディレクトリに移動し、次を実行します:

<code><span>./ext_skel --extname</span>=<span>hello_world</span></code>

2. hello_world ディレクトリに移動し、config.m4 を編集し、16、18、および 53 行目の前の dnl を削除します:

<code><span>PHP_ARG_ENABLE</span>(<span>hello_world</span>, <span>whether</span><span>to</span><span>enable</span><span>hello_world</span><span>support</span>,
<span>[  --enable-hello_world           Enable hello_world support]</span>)
<span>AC_DEFINE</span>(<span>HAVE_HELLO_WORLDLIB</span>,1,<span>[ ]</span>)
</code>

3. php_hello_world.h ファイルを変更し、元の

<code><span>#<span>define</span> PHP_HELLO_WORLD_H</span></code>

を次の内容に変更します:

<code><span>#<span>define</span> PHP_HELLO_WORLD_H 1</span><span>#<span>define</span> PHP_HELLO_WORLD_VERSION "1.0"</span><span>#<span>define</span> PHP_HELLO_WORLD_EXTNAME "hello_world"</span>
PHP_FUNCTION(hello_world);<span>//这句最关键</span></code>

4. hello_world.c ファイルを変更します:
次の内容を変更します:

<code><span>const</span> zend_function_entry hello_world_functions[] = {
        PHP_FE(confirm_hello_world_compiled,    <span>NULL</span>)           <span>/* For testing, remove later. */</span>
        PHP_FE_END      <span>/* Must be the last line in hello_world_functions[] */</span>
};</code>

次に、最後に次の内容を追加します:

<code><span>const</span> zend_function_entry hello_world_functions[] = {
        PHP_FE(confirm_hello_world_compiled,    <span>NULL</span>)           <span>/* For testing, remove later. */</span>        PHP_FE(hello_world,    <span>NULL</span>)
        PHP_FE_END      <span>/* Must be the last line in hello_world_functions[] */</span>
};
</code>

5. ext/hello_world ディレクトリに移動し、次のコマンドを実行します

<code><span>//扩展函数正文部分</span><span>PHP_FUNCTION(hello_world)</span>{
        <span>RETURN_STRING(<span>"Hello World!"</span>,<span>1</span>)</span>;
}</code>

6. php.ini を編集して追加します。次の内容:

rree

テスト:

コマンドラインで次の内容を実行します:

<code>/usr/<span>local</span>/php/bin/phpize
<span>.</span>/configure <span>--</span><span>with</span><span>-php</span><span>-config</span><span>=</span>/usr/<span>local</span>/php/bin/php<span>-config</span>
make <span>&&</span> make install
</code>

この時点で、標準出力に次の内容が表示されます:
<code><span>extension</span>=<span>hello_world.so</span></code>

この時点で、hello_world 拡張機能が書き込まれます。

著作権表示: この記事はブロガーによるオリジナル記事です。転載する場合は出典を明記してください。

上記は、内容の側面も含めて PHP 拡張機能の作成の概要を紹介したもので、PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。