ホームページ  >  記事  >  バックエンド開発  >  C++ を使用した PHP 拡張機能の開発

C++ を使用した PHP 拡張機能の開発

WBOY
WBOYオリジナル
2016-08-08 09:21:421439ブラウズ
転載元: http://521-wf.com/archives/241.htmlこの記事では主に、C++を使用したPHP拡張機能の開発とC言語の違いについて紹介します現在、PHPプログラミング言語もかなり成熟しています、およびさまざまな あらゆる種類のドキュメント、あらゆる種類の質問、Google で検索すれば、あなたが望む答えが必ず見つかります。もちろん、「PHP 拡張機能の開発方法」に関する記事はたくさんありますが、C++ を使用して PHP 拡張機能を開発することを具体的に紹介する記事はほとんどありません。 C++ プログラミング言語の強力な機能により、多くの企業がバックエンド プログラムに C++ プログラミング言語を使用することを選択するようになりました。そのため、私たちが遭遇するほとんどの状況では、PHP を拡張するために C++ を使用する必要があります。 PHP ソース コード内の拡張スケルトン ツールは、C 言語をサポートするためにデフォルトで生成されます。開発に C++ を使用する場合は、いくつかのパラメーターを個別に設定する必要があります。以下、簡単な例を使って説明します。 準備: 1. PHP ソースコードをダウンロードします。http://www.php.net/downloads、ここでダウンロードされるのは、解凍後のソースコードです。は /root/php-5.3.24/
3 に配置されます。インストール ディレクトリ: /usr/local/php-5.3.24/
4. インストールを開始し、将来の個人設定を容易にするために php.ini のパスを設定します
5拡張機能名: discuz
6. 拡張機能: discuz_say()、この関数は「Hello world!」文字列のみを返します
7。拡張機能は win32 システムでも Unix 系システムでも実行できます。ここでのみ紹介されているコンパイル済みの GNU/Linux での動作。
拡張機能の作成を開始します: 1. 実装する関数リスト ファイル discuz.proto を作成します。内容は次のとおりです: string discuz_say()2. 拡張機能スケルトン ツールを使用してコア ファイルを生成します。コマンドは次のとおりです。次のように: [root@localhost ~]# cd php-5.3.24/ext/ [root@localhost ext]# ./ext_skel --extname=discuz --proto=../../discuz.protoこの時点で ext ディレクトリ内に discuz フォルダーが表示されます。このフォルダーには、config.m4 discuz.c php_discuz.h などのいくつかのファイルが含まれています。 3. config.m4 ファイルを変更します。内容は次のとおりです。 dnl $Id$ dnl config.m4 for extension discuz PHP_ARG_ENABLE(discuz, whether to enable discuz support, Make sure that the comment is aligned: [ --enable-discuz Enable discuz support]) if test "$PHP_DISCUZ" != "no"; then PHP_REQUIRE_CXX() dnl 通知Make使用g++ PHP_ADD_LIBRARY(stdc++, 1, EXTRA_LDFLAGS) dnl 加入C++标准库 PHP_NEW_EXTENSION(discuz, discuz.cpp, $ext_shared) fi このファイルでは、dnl はコメント文字で、その後の文字列は解釈コンテキストです。 4. discuz.c ファイルを変更し、名前を discuz.cpp に変更します (この名前はよりプロフェッショナルに見えます) 4.1 必要な C++ 文字列ヘッダー ファイルを次のように追加します。 #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "php.h" #include "php_ini.h" #include "ext/standard/info.h" #include "php_discuz.h" #include /* 添加这行 */4.2 discuz_say 関数を次のように変更します。 /* {{{ proto string discuz_say() */ PHP_FUNCTION(discuz_say) { std::string str = "Hello world!"; RETURN_STRINGL(str.c_str(), str.length(), 1); } 5. 拡張機能をコンパイルし、その discuz.so をインストール ディレクトリに置きます (PHP 拡張機能をコンパイルする 2 つの方法を参照してください)。 テストを開始します: [root@localhost ~]# /usr/local/php-5.3.24/bin/php hi.php Hello world!この時点で、簡単な拡張機能が完成しました 上記では、PHP 拡張機能を開発するための C++ の使用方法をその側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。

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