ホームページ > バックエンド開発 > PHPチュートリアル > PHP は他の言語と対話します - 概要

PHP は他の言語と対話します - 概要

WBOY
リリース: 2016-06-23 13:35:30
オリジナル
1125 人が閲覧しました

元の Web サイトは継続的に更新されます: Zuocheng のテクノロジー ブログ「PHP と他の言語の相互作用 - 概要」it.zuocheng.net

ソフトウェアまたはシステム、異なるモジュールは異なる言語で記述される場合があります。必然的に、相互作用とコミュニケーションにおいて言語が異なります。この記事では、PHP の観点から、PHP が他の言語とどのように対話するかについて説明します。

言語レベルの対話

グルー言語の使用

グルー言語 シェルスクリプト Python Ruby Lua Tcl Perl。

その本質はオペレーティング システムの入出力を呼び出すことであり、オペレーティング システムは他の言語で書かれたアプリケーション用の新しいプロセスを作成し、その出力を PHP に返します。

利点は、シンプルで実装が簡単であることです。

欠点は次のとおりです:

  • システムコールには一定のリスクがあります
  • システムが呼び出されるたびに新しいプロセスが作成され、コストがかかります
  • 複雑なデータ構造を直接転送できません
  • PHP 拡張機能を作成します

    API をカプセル化します他の言語で C インターフェイス (多くの場合、ダイナミック リンク ライブラリにコンパイルする必要があります) に変換し、PHP 拡張機能にカプセル化して、PHP ステートメントで直接呼び出すことができるようにします。

    利点:

  • 高性能
  • 複雑な構造化データの相互作用を実現できます。
  • 欠点:

  • 開発、運用、保守のコストが高い
  • PHP Native Interface (PNI) を使用する

    PNI は、PHP コードで C クラス ライブラリを直接呼び出すことを可能にする PHP 拡張機能

    SWIG を使用する

    最終的な目標はPHP 拡張機能を作成する場合の違いは、SWIG が提供するインターフェイスにより、開発者が Zend API と PHP API を学習するコストを節約できることです。

    プロセス間対話

    言語レベルで直接対話できない場合は、プロセス間対話方法を使用できます。本質は、オペレーティング システムによって提供されるプロセス間対話メソッドを呼び出すことです。

  • シグナル
  • セマフォ
  • パイプ
  • メッセージキュー
  • 共有メモリ
  • ファイル、メモリデータベースなど
  • システム間相互作用

    異なる言語で書かれたシステム間で相互作用がある場合、次のような方法があります:

  • ネットワーク呼び出し (HTTP、ソケット、Web サービス)
  • データベース
  • データ ファイル
  • 分散システム (Memcache、Radis、rabitMQ)
  • 関連ラベル:
    ソース:php.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート