スタンドアロン PHP 拡張機能の作成方法_PHP チュートリアル
スタンドアロンの PHP 拡張機能の作成方法
スタンドアロンの PHP 拡張機能は、PHP ソース コードとは独立して配布できます。このような拡張機能を作成するには、次の 2 つのものを準備する必要があります:
-
設定ファイル(config.m4)
-
モジュールのソースコード
次に、これらのファイルを作成して結合する方法について説明します。
システムツールを準備する
拡張機能をコンパイルしてシステム上で正常に実行したい場合は、次のツールを準備する必要があります:
-
GNU 自動設定
-
GNU オートメイク
-
GNU libtool
-
GNU m4
上記は ftp://ftp.gnu.org/pub/gnu/ から入手できます。
注: これらはすべて、Unix のような環境でのみ使用できるツールです。
既存の拡張機能を変更する
スタンドアロン拡張機能を作成するのがいかに簡単かを示すために、まず PHP に既に埋め込まれている拡張機能をスタンドアロン拡張機能に変更してみましょう。 PHP をインストールし、次のコマンドを実行します:
$ mkdir /tmp/newext
$ cd /tmp/newext
これで空のディレクトリができました。ファイルを mysql 拡張ディレクトリにコピーします:
$ cp -rp php-4.0.X/ext/mysql/* .
# 注: この README は本当に更新する必要があるようです
# mysql 拡張機能は PHP7 から削除されました
ここで展開が完了しました。以下を実行してください:
$phpize
これで、このディレクトリ内のファイルをどこにでも独立して保存できるようになり、この拡張機能は完全に独立して存在できます。
ユーザーはコンパイル時に次のコマンドを使用する必要があります:
$ ./設定
[--with-php-config=/path/to/php-config]
[--with-mysql=MYSQL-DIR]
$メイクインストール
注: これは、PHP 拡張機能を作成したい場合は、PHP をインストールし、PHP ソース コードのコピーをダウンロードする必要があることを意味します。
新しい拡張機能を定義する
拡張機能の例に「foobar」という名前を付けました。新しい拡張機能には、foo.c と bar.c の 2 つのリソース ファイルといくつかのヘッダー ファイルが含まれていますが、これらは重要なだけではありません)。
拡張機能の例が外部ライブラリを参照しないことが重要です。これは、ユーザーがコンパイル オプションを指定する必要がないためです。
オプションは、リソース ファイルの名前を指定するために使用されます。リソース ファイルはいくつでも指定できます。 LTLIBRARY_SOURCES
注: 上記は Makefile.in ファイルの構成オプションです。xdebug を参照してください。
m4サフィックスの設定ファイルを変更する
m4 構成ファイルでは、いくつかの追加チェックを指定できます。スタンドアロン拡張機能の場合、マクロ呼び出しを数回行うだけで済みます。PHP_ARG_ENABLE(foobar,foobarを有効にするかどうか,
[ --enable-foobar foobar を有効にする])
if テスト "$PHP_FOOBAR" != "いいえ" then
PHP_NEW_EXTENSION(foobar, foo.c bar.c, $ext_shared)
ふぃ
共有モードで起動します。 PHP_ARG_ENABLE
会自动设置好正确的变量以保证扩展能够被 PHP_NEW_EXTENSION
セット。 PHP_NEW_EXTENSION
的第一个参数是扩展的名称,第二个参数是资源文件。第三个参数 $ext_shared
是由 PHP_ARG_ENABLE/WITH
为 PHP_NEW_EXTENSION
を使用してください。 PHP モジュールを公開する予定がない場合でも、これらの設定により、モジュールのメイン PHP モジュールとのインターフェイスの一貫性が保たれます。 PHP_ARG_ENABLE
或 PHP_ARG_WITH
注: 同じです。 PHP_ARG_ENABLE
和 PHP_ARG_WITH
应该是用于定义模块是动态扩展还是静态编译进 PHP 中,就跟编译 PHP 时使用的 --enable-xxx
和 --with-xxx
リソースファイルを作成する
PHP モジュールの汎用コードを作成したり、基本的な関数定義や関数パラメーターを処理する C コードを作成したりすることもできます。具体的な情報は READNE.EXT_SKEL にあります。 ext_skel
注: 基本モジュールに必要なリソース ファイルと設定ファイルは生成でき、自分で作成する必要はありません。 ext_skel
カスタムモジュールを変更する
config.m4 ファイルとリソース ファイルを同じディレクトリに配置して実行します phpize
PHP 4.0 以降には、PHP のコンパイル時に phpize がインストールされています)。
phpize がシステム環境変数にない場合は、次のように絶対パスを指定する必要があります:
$ /php/bin/phpize
このコマンドは、必要なビルド ファイルを現在のディレクトリに自動的にコピーし、config.m4 に基づいて構成ファイルを作成します。
上記の手順を完了すると、すでに独立した拡張機能が作成されています。
拡張機能をインストール
拡張機能は次のコマンドでコンパイルしてインストールできます:
$ ./設定
[--with-php-config=/path/to/php-config]
$メイクインストール
モジュールに共有サポートを追加します
場合によっては、他のモジュールをロードするために独立した拡張機能を共有する必要があります。次に、作成済みの foo モジュールに共有サポートを追加する方法を説明します。
#ifdef COMPILE_DL_FOO
ZEND_GET_MODULE(フー)
#endif
この段落は上でも触れましたが、ここでもう一度強調しておきます。
PECLウェブサイト規約
PECL に拡張して Web サイトを公開する予定がある場合は、考慮すべき点がいくつかあります:
#define PHP_FOO_VERSION "1.2.3"

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。
