Laravel は最も人気のある PHP フレームワークの 1 つであり、Web 開発を効率的かつ楽しいものにします。開発者であれば、ローカル開発サーバーをすばやく起動するために php 職人サーブ コマンドを使用したことがあるでしょう。しかし、このコマンドを実行すると舞台裏で何が起こっているのか考えたことはありますか?これを段階的に詳細に検討し、Laravel が ServeCommand をどのように識別して実行するかを理解し、PHP の組み込みサーバーとは何か、Nginx や Apache などの従来の Web サーバーとどのように比較するのかを詳しく見ていきましょう。
phpアルチザンサーブとは何ですか?
phpArtisanserveコマンドは、プロジェクトのローカルWebサーバーを起動するLaravelの機能です。 PHP の組み込みサーバーを使用して、開発中に特定のアドレス (例: http://127.0.0.1:8000) で Laravel アプリケーションにアクセスできるようにします。
このコマンドは、Nginx や Apache のような本格的な Web サーバーをセットアップする必要がないため、ローカル開発に特に役立ちます。
ステップバイステップのプロセス: phpArtisan Serve を実行すると何が起こりますか?
1.ユーザーがコマンドを実行
ターミナルで「phpArtisanserve」と入力すると、LaravelのコマンドラインツールであるLaravelのArtisan Consoleが動作を開始します。これは、Laravel アプリケーションの構築、テスト、実行を支援するさまざまなコマンドを備えたツールボックスのようなものです。
2.職人エントリーポイント
- プロジェクトのルート ディレクトリにある Artisan ファイルは、すべての Artisan コマンドのエントリ ポイントとして機能します。
- phpArtisan Serve を実行すると、Artisan ファイルは次のことを行います:
- Composer のオートローダー (vendor/autoload.php) が含まれています。
- bootstrap/app.php を使用して Laravel フレームワークをブートストラップします。
3.職人が ServeCommand を発見
- Laravel は、アプリケーションの起動時にすべての Artisan コマンドを登録します。 serve のような組み込みコマンドの場合、Laravel はそれらを IlluminateFoundationProvidersArtisanServiceProvider.
に登録します。
- このプロバイダーは、コマンド名 (serve) を対応するクラス (IlluminateFoundationConsoleServeCommand) にマップします。
4. コマンド解決と自動ロード
- ServeCommand は、名前空間 IlluminateFoundationConsole の下のベンダー/laravel/framework ディレクトリにあります。
- Laravel は Composer の PSR-4 自動ロード設定を使用してクラスを見つけてロードします。
- これにより、完全な Laravel フレームワークがまだ完全に初期化されていない状態でも、ServeCommand クラスをロードできるようになります。
5. サーバーの準備
- ServeCommand は PHP 組み込みサーバーを構成します:
- ホスト: デフォルトは 127.0.0.1 (ローカルホスト) です。
- ポート: デフォルトは 8000 (または --port オプションによるカスタム)。
- ドキュメントルート: Laravel のエントリファイル (index.php) が存在するパブリックディレクトリを指します。
- 内部的には、次のコマンドが実行されます。
php -S 127.0.0.1:8000 -t public server.php
ログイン後にコピー
-
php -S PHP の組み込みサーバーを起動します。
-
-t public ドキュメントのルートを指定します。
-
server.php: 動的リクエストを処理するためのルーター ファイル。
6. リクエストの処理
- server.php ファイルはルーターとして機能します:
- 要求されたファイル (CSS、JS など) が存在する場合、それは直接提供されます。
- それ以外の場合、リクエストはindex.phpに転送されます。
7. Laravel がリクエストを処理する
- index.php ファイルは、Laravel のフレームワークを初期化し、受信した HTTP リクエストを処理します。
- リクエストを適切なコントローラーにルーティングし、ロジックを処理して、応答 (HTML や JSON など) を生成します。
8. 応答が返送される
Laravel 応答は PHP 組み込みサーバーに送り返され、その後、それがブラウザーに配信されます。
PHPの組み込みサーバーとは何ですか?
PHP の組み込みサーバーは、PHP 5.4 で導入された単純な開発サーバーです。これは、開発者が完全な Web サーバーをインストールまたは構成することなくアプリケーションをテストできるように設計されています。
PHP 組み込みサーバーの機能:
- 使いやすさ: 単一のコマンド (php -S) で起動します。
- 動的ファイルと静的ファイル: PHP スクリプトと、画像やスタイルシートなどの静的ファイルの両方を提供します。
- カスタムルーティング: ルータースクリプト(Laravelのserver.phpなど)を介したリクエストのカスタム処理を可能にします。
比較: PHP 組み込みサーバーと Nginx/Apache
- 目的: PHP 組み込みサーバーは開発のみを目的としています。 Nginx/Apache は、実稼働対応と開発の両方に使用できます。
- パフォーマンス: PHP 組み込みサーバーはシングルスレッド (一度に 1 つのリクエスト) であり、Nginx/Apache はマルチスレッド (多くのリクエストを同時に処理します)
- 構成: PHP 組み込みサーバーには最小限のセットアップが必要です。 nginx/Apache には設定ファイルが必要です。
- 高度な機能: PHP 組み込みサーバーは制限されています (例: キャッシュなし)。 Nignx/Apache は、キャッシュ、負荷分散などに使用できます。
この設定は便利ですが、開発のみを目的としています。ライブ アプリケーションの場合、Nginx や Apache などの Web サーバーは、運用トラフィックの処理に必要なスケーラビリティとパフォーマンスを提供します。
追伸物事が舞台裏でどのように機能しているかを知ることにいつも興味があります。これは、アプリケーションを構築するときに実際に何が起こっているのかを理解するのに役立ちます。私の他の記事も読むことができます。
以上がLaravel で「phpArtisan Serve」を実行するとどうなりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。