まず、ビジネス シナリオでは、ccvita_string という関数を提供するためにこのような拡張機能が必要であると仮定します。その主な機能は、文字のピリオドを返すことです。 (このビジネス シナリオはあまりにも偽物です。ちょっと見てください) 対応する PHP コードは次のようになります:
<span>function</span> ccvita_string(<span>$str</span><span>){ </span><span>$result</span> = '<a href="'.<span>$str</span>.'">Link</a>'<span>; </span><span>return</span><span>$result</span><span>; }</span>
最初のステップはコードを生成することです
PHP は便宜上、コード ジェネレーターのようなコード ジェネレーターを提供しています。拡張開発ツール ext_skel の詳細については説明を参照してください。
まず、ファイル ccvita.skel を作成します。その内容は
<span>string</span> ccvita_string(<span>string</span> str)
で、実行したい拡張機能に ccvita_string という関数があることを ext_skel に伝えます。そして
cd MooENV/src/php-<span>5.3</span>.<span>8</span>/ext/<span>.</span>/ext_skel --extname=ccvita --proto=<span>ccvita.skel cd ccvita</span>/
を実行すると、ccvitaの拡張コードフレームワークが出てきました。
2 番目のステップは構成を変更することです
次に config.m4 ファイルを変更して 3 行 10、11、12 の最初の dnl を削除します。つまり、
dnl PHP_ARG_WITH(ccvita, for ccvita support,<span>dnl Make sure that the comment is aligned: dnl </span><span>[</span><span> --with-ccvita Include ccvita support</span><span>]</span>)
を
PHP_ARG_WITH(ccvita, for ccvita support,<span>Make sure that the comment is aligned: </span><span>[</span><span> --with-ccvita Include ccvita support</span><span>]</span>)
に変更します。ステップは、関数を実装することです
ソース コード ccvita.c ファイルを変更します
ccvita_string 関数を見つけて変更します
<span>PHP_FUNCTION(ccvita_string) { </span><span>char</span> *str =<span> NULL; </span><span>int</span> argc =<span> ZEND_NUM_ARGS(); </span><span>int</span><span> str_len; </span><span>char</span> *<span>result; </span><span>if</span> (zend_parse_parameters(argc TSRMLS_CC, <span>"</span><span>s</span><span>"</span>, &str, &str_len) ==<span> FAILURE) </span><span>return</span><span>; str_len </span>= spprintf(&result, <span>0</span>, <span>"</span><span><a href=\"%.78s\">Link</a></span><span>"</span><span>, str); RETURN_STRINGL(result, str_len, </span><span>0</span><span>); }</span>
4 番目のステップ、拡張機能をコンパイルします
保存後、コンパイルを開始します
/usr/local/php/bin/<span>phpize .</span>/configure --with-php-c/local/php/bin/php-<span>config </span><span>make</span>
5 番目のステップ、拡張機能を追加します
この時点で、すべてがうまくいけば、拡張機能はすでに modules/ccvita.so にあります。以下は、この拡張機能を PHP に追加して、PHP プログラムが呼び出せるようにします。
<span>cp</span> modules/ccvita.so /usr/local/php/ext/<span>vim </span>/usr/local/php/etc/<span>php.ini extension</span>=/usr/local/php/ext/<span>ccvita.so #在php.ini文件最后增加这一行 service php</span>-<span>fpm restart #重启PHP服务 </span><span>cp</span> ccvita.php /data/www/wwwroot/default/
関連するコードは私の github で複製できます。アドレス: https://github.com/KimiChen/PHP-EXTその後、ccvita.php ファイルにアクセスして拡張機能をテストできます。次の記事では、さらに詳しい内容について説明します。
ブログ(http://www.ccvita.com/496.html)より転載
以上、PHP 拡張機能の開発 01: 最初の拡張機能について内容を含めて紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。