ホームページ >バックエンド開発 >PHPチュートリアル >PHP マルチプレイヤー モジュール開発原則の分析_php スキル

PHP マルチプレイヤー モジュール開発原則の分析_php スキル

韦小宝
韦小宝オリジナル
2017-12-15 09:54:131492ブラウズ

この記事では、PHPマルチプレイヤー開発の原理と注意すべき点について詳しく説明します。PHP言語を学んだばかりの人、またはすでに仕事を探し始めている人は、この記事をお見逃しなくPHP。 マルチプレイヤーモジュール開発の原則を分析! !

世界最高の言語として、中小企業は基本的に lnmp アーキテクチャを使用しており、Web の約 80% を占めています。ウェアハウスに 1 人または 20 人以上の開発者がいる場合、各人が異なるモジュールや機能を開発し、git などのコード バージョン管理ツールを使用して異なるブランチを開く可能性があります。そのプロセスは、おそらく、最初に完全な環境をローカルにセットアップして開発することになります。テスト環境にデプロイし、セルフテストまたはテスターテストを行った後、プレリリース環境にデプロイし、承認が完了すると、製品が受け入れられます。オンラインでリリースおよび開始されます。

並行開発により、複数の機能が同時に受け入れられたりテストされたりする状況が発生するはずです。この時点で、誰のコードがプレリリース環境にデプロイされますか? Aの支店に切り替えるとBは受け付けられなくなります。したがって、私たちは、全員の開発プロセスが互いに影響を与えない、複数人による開発環境が実現されることを望んでいます。

PHPの動作原理

まず、PHPの動作原理を分析し、PHPの言語特性を見てみましょう。ブラウザからリクエストを開始すると、Web サーバー (Nginx、Apache など) はポート 80 または 443 をリッスンします。最も単純な Nginx 仮想ホスト構成を見てみましょう:


server {
 listen    80;
 server_name test.com;
 
 root /data/gateway/html;
 index  index.php;

 location ~ \.php$ {
  fastcgi_pass  127.0.0.1:9001; #unix:/Users/run/php-fcgi.sock;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include    fastcgi_params;
 }
}


Nginx は 80 ポートでリッスンします、ユーザーがアクセスしたドメイン名が test.com と一致すると、対応する vhost 構成が使用されます。 PHP-FPM はサーバーでサービスを開始し、ポート (9001 など) または Nginx が fastcgi_pass を通じて設定され、リクエストを PHP-FPM に渡して PHP コード を解析します。毎回、index.php の解析を開始し、最後まで処理を継続し、クエリデータベースやキャッシュなどの一連の論理処理を実行し、HTML やその他の結果を Nginx に返し、Nginx はそれをブラウザに返します。プロセスは次のとおりです:

CGI: Nginx と PHP_FPM 間のデータ交換用のプロトコルです。

FastCGI: CGI と同じ通信プロトコルですが、CGI よりも効率が最適化されています。

PHP-CGI: Nginx が提供する CGI プロトコル用の PHP のインターフェイス プログラムです。

PHP-FPM: Nginx によって提供される FastCGI プロトコル用の PHP インターフェイス プログラムであり、比較的インテリジェントなタスク管理も提供します。

複数人による開発環境

PHP の原理から、PHP は実際には単に解釈されたスクリプト言語であることがわかります。さまざまな開発者の名前に従って多くのフォルダーに名前を付け、各フォルダーでコード リポジトリを複製し、独自のブランチに切り替えます。次に、Nginx に各人のディレクトリ内のインデックスを処理させます。たとえば、http://wulv.test.com/ に直接アクセスし、Nginx で wulv を取得し、root を wulv ディレクトリに設定すると、wulv ディレクトリ内のコードにアクセスできるようになります。 Nginx は次のように設定できます:


set $who www;
if ($http_who != "") {
  set $who $http_who;
}
root /data/gateway/$who/html;


URL にユーザーのディレクトリを持たせ、Nginx でそれをインターセプトし、次の場所に運ぶことができます:

host: http://wulv.test com

path: http://www.test.com/wulv

query: http://www.test.com?http_who=wulv

これで要件は概ね達成できますが、まだ要件は満たされています。たとえば、ページ上の一部のリンクがハードコードされており、クリックするとすぐに www.test.com に移動するか、OAuth などの一部のサードパーティ アプリケーションを確認する必要があります。あなたのドメイン名とオンラインのドメイン名が一致していません。ログインできません。したがって、これを実現するには次のような他の方法が必要です:

http リクエスト ヘッダー

cookie

Modify Headers ブラウザ プラグインを使用して http リクエスト ヘッダー情報を変更し、パラメータ http_who を wulv に設定できます。 、それを Nginx で取得します。

展開

条件が許せば、実際にゲートウェイ サーバーを作成し、構成ページにアクセスする必要があるディレクトリを構成できます。次回アクセスするときに、ゲートウェイが直接お手伝いします。 httpヘッダー、対応するサーバーへのプロキシを設定します。これにより、ブラウザのプラグインをインストールする必要もなくなり、操作や製品設計がより容易になります。

この記事の内容は以上です。皆さんのお役に立てれば幸いです。 !

関連する推奨事項:

PHPの複数人開発環境の原理の詳細な説明

PHP分散システムでRedisを使用したセッションを実装する方法

PHP で大きなファイルをアップロードできない問題に対する完璧な解決策

以上がPHP マルチプレイヤー モジュール開発原則の分析_php スキルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。