PHP 拡張機能の開発は、すべての開発者が操作できるものではありません。ここで、学生が必要に応じて参照できるように、PHP 拡張機能の開発の実装プロセスを説明します。
まず、このような拡張機能が必要で、tao_string という関数を提供すると仮定しましょう。その主な機能は文字のピリオドを返すことです。対応する PHP コードは次のようになります:
コードは次のとおりです | コードをコピー |
関数 tao_string($str){ |
最初のステップはコードを生成することです
開発の利便性を高めるために、PHP にはコードジェネレーターと同様のツール ext_skel が提供されています。詳細については、php.net の公式手順 (https://svn.php.net/repository/php/php-) を参照してください。 src/trunk/README)。
内容を含むファイル tao.skel を作成します
文字列 tao_string(文字列 str)
実行したい拡張機能に tao_string という関数があることを ext_skel に伝えるだけです。次に実行します
コードは次のとおりです | コードをコピー |
cd MooENV/src/php-5.3.8/ext/ |
この度、taoの拡張コードフレームワークが出てきました。
2 番目のステップは構成を変更することです
次に、config.m4 ファイルを変更して、3 行 10、11、12 の最初の dnl、つまり
コードは次のとおりです | コードをコピー |
dnl PHP_ARG_WITH(tao、tao サポート用、 は に変更されましたPHP_ARG_WITH(tao、tao サポート用、 |
3番目のステップは関数を実装することです
ソースコード tao.c ファイルを変更します
tao_string 関数を見つけて
コードは次のとおりです | コードをコピー |
PHP_FUNCTION(tao_string) if (zend_parse_parameters(argc TSRMLS_CC, "s", &str, &str_len) == 失敗) str_len = spprintf(&result, 0, "ウォシ %.78s", str); |
4 番目のステップ、拡張機能をコンパイルします
保存したら、コンパイルを開始します
コードは次のとおりです | コードをコピー |
/usr/local/php/bin/phpize |
ステップ5、拡張機能を追加します
この時点で、すべてがうまくいけば、拡張機能はすでに modules/tao.so にあります。以下は、この拡張機能を PHP に追加して、PHP プログラムが呼び出せるようにします。
コードは次のとおりです | コードをコピー |
cp modules/tao.so /usr/local/php/ext/ |
その後、ファイル tao.php にアクセスしてテストできます