PHP 学習ノート PHP 拡張機能開発チュートリアル_PHP チュートリアル

WBOY
リリース: 2016-07-13 17:07:39
オリジナル
975 人が閲覧しました

PHP 拡張機能の開発は、すべての開発者が操作できるものではありません。ここで、学生が必要に応じて参照できるように、PHP 拡張機能の開発の実装プロセスを説明します。

まず、このような拡張機能が必要で、tao_string という関数を提供すると仮定しましょう。その主な機能は文字のピリオドを返すことです。対応する PHP コードは次のようになります:

コードは次のとおりです コードをコピー

関数 tao_string($str){
$result = $str;
$result を返します;
}

最初のステップはコードを生成することです
開発の利便性を高めるために、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/
./ext_skel --extname=tao --proto=tao.skel
CDタオ/

この度、taoの拡張コードフレームワークが出てきました。

2 番目のステップは構成を変更することです
次に、config.m4 ファイルを変更して、3 行 10、11、12 の最初の dnl、つまり

を削除します。
コードは次のとおりです コードをコピー

dnl PHP_ARG_WITH(tao、tao サポート用、
dnl コメントが整列していることを確認してください:
dnl [ --with-tao ] tao サポートを含める])

に変更されました

PHP_ARG_WITH(tao、tao サポート用、
コメントが揃っていることを確認してください:
[ --with-tao tao サポートを含める])

3番目のステップは関数を実装することです
ソースコード tao.c ファイルを変更します
tao_string 関数を見つけて

に変更します
コードは次のとおりです コードをコピー

PHP_FUNCTION(tao_string)
{
char *str = NULL;
int argc = ZEND_NUM_ARGS();
int str_len;
char *結果;

if (zend_parse_parameters(argc TSRMLS_CC, "s", &str, &str_len) == 失敗)
戻ります;

str_len = spprintf(&result, 0, "ウォシ %.78s", str);
RETURN_STRINGL(結果, str_len, 0);
}

4 番目のステップ、拡張機能をコンパイルします
保存したら、コンパイルを開始します

コードは次のとおりです コードをコピー

/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
作る

ステップ5、拡張機能を追加します
この時点で、すべてがうまくいけば、拡張機能はすでに modules/tao.so にあります。以下は、この拡張機能を PHP に追加して、PHP プログラムが呼び出せるようにします。

コードは次のとおりです コードをコピー

cp modules/tao.so /usr/local/php/ext/
vim /usr/local/php/etc/php.ini
extension=/usr/local/php/ext/tao.so #php.ini ファイルの最後にこの行を追加します
service php-fpm restart #PHP サービスを再起動します
cp tao.php /data/www/wwwroot/default/

その後、ファイル tao.php にアクセスしてテストできます

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/629901.html技術記事 PHP 拡張機能の開発は、すべての開発者が実行できるものではありません。ここで、学生が必要に応じて参照できるように、PHP 拡張機能の開発の実装プロセスを説明します。 まず次のことが必要だと仮定しましょう...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート