この記事では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 がリクエストを PHP-FPM に渡し、fastcgi_pass 設定を通じて PHP コードを解析します。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 は実際には解釈されたスクリプトにすぎないことがわかります。言語では、各リクエストはindex.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 でそれをインターセプトし、次の場所に運ぶことができます。
##ホスト: http://wulv.test.com拡張
以上がPHP でのマルチプレイヤー モジュール開発の原則についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。