私は Laravel の初心者向けチュートリアルを完了し、それらのチュートリアルに記載されているすべてのトピックを理解できるようになり、独自のプロジェクトを作成しましたが、それらで見たように、チューターは各ファイルの目的を理解することができ、それを編集し、必要に応じて変更します。
では、彼らはどのようにしてどの情報源から深く学ぶのでしょうか?
私は Laravel の初心者向けチュートリアルを完了し、それらのチュートリアルに記載されているすべてのトピックを理解できるようになり、独自のプロジェクトを作成しましたが、それらで見たように、チューターは各ファイルの目的を理解することができ、それを編集し、必要に応じて変更します。
では、彼らはどのようにしてどの情報源から深く学ぶのでしょうか?
Laravel Official Documentationで言われていることを簡単に試してみます
すべての Laravel プロジェクトのルート ディレクトリには、次のディレクトリがあります。
ご想像のapp
とおり、ディレクトリにはアプリケーションのコア コードが含まれています。モデル、コントローラー、サービス、ミドルウェアがここに格納されます。
このbootstrap
フォルダーには、フレームワークをブートストラップしてオートローディングを構成するいくつかのファイルと、ブートストラップのパフォーマンスを最適化するためにフレームワークで生成されたいくつかのファイルを含むキャッシュ フォルダーが含まれています。通常、このフォルダに触れる必要はありません。
ディレクトリにはconfig
、名前が示すように、アプリケーションの構成ファイルがすべて含まれています。ここで、データベース接続、電子メール ドライバー、セッション ストレージ構成 (およびその他多数) を設定する必要があります。
このdatabase
フォルダーには、データベースの移行とシードが含まれています。必要に応じて、このフォルダーを使用して SQLite データベースを保持することもできます。Migrations を使用すると、SQL コードを記述せずにデータベースを定義できます。データベース構造のバージョン管理に関心がある場合、これは非常に便利です。詳細はこちら
このpublic
ディレクトリには、フロント コントローラーとアセット (画像、JavaScript、CSS など) が含まれます。
このresources
ディレクトリには、ビュー、生のアセット (LESS、SASS、CoffeeScript)、およびローカライズ ファイルが含まれています。デフォルトでは、ビューはブレードという名前のビュー エンジンを使用しますが、config
フォルダー内でこれを変更できます。
このstorage
ディレクトリには、コンパイルされた Blade テンプレート、ファイル ベースのセッション、ファイル キャッシュ、およびフレームワークによって生成されたその他のファイルが含まれます。このフォルダーは、アプリ、フレームワーク、およびログのディレクトリに分離されています。app ディレクトリは、アプリケーションで使用されるファイルを保存するために使用できます。フレームワーク ディレクトリは、フレームワークで生成されたファイルとキャッシュを格納するために使用されます。最後に、logs ディレクトリにはアプリケーションのログ ファイルが含まれます。
ディレクトリには、自動化されたtests
テストが含まれています。PHPUnit の例がそのまま提供されます。
このvendor
ディレクトリには、Composer の依存関係と、アプリケーションに必要なライブラリが含まれています。composer を介してインストールされた各ライブラリーは、ここに保管されます。
app フォルダーには、アプリケーションのコア コードが含まれています。このフォルダー内にはさまざまなディレクトリがあり、それぞれに特定の目的があります。
このapp
ディレクトリには、Console、Http、Providers などのさまざまな追加ディレクトリが付属しています。Console および Http ディレクトリは、アプリケーションの「コア」に API を提供するものと考えてください。HTTP プロトコルと CLI はどちらもアプリケーションとやり取りするためのメカニズムですが、実際にはアプリケーション ロジックは含まれていません。つまり、アプリケーションにコマンドを発行する 2 つの方法にすぎません。Console ディレクトリにはすべてのArtisanコマンドが含まれ、Http ディレクトリにはcontroller、middleware、requestsが含まれます。アプリケーションのルートもこのディレクトリで定義されます。
ご想像のEvents
とおり、ディレクトリにはイベント クラスが格納されています。イベントを使用して、特定のアクションが発生したことをアプリケーションの他の部分に警告し、柔軟性と分離を大幅に向上させることができます。詳細については、このリンクを確認してください
ディレクトリには、アプリケーションのExceptions
例外ハンドラが含まれており、アプリケーションによってスローされた例外を固定するのにも適しています。
もちろん、このJobs
ディレクトリには、アプリケーションのキュー可能なジョブが格納されています。ジョブは、アプリケーションによってキューに入れられるか、現在のリクエスト ライフサイクル内で同期的に実行されます。ここに詳細があります。
ディレクトリには、イベントのListeners
ハンドラ クラスが含まれています。ハンドラーはイベントを受け取り、発生したイベントに応答してロジックを実行します。たとえば、UserRegistered イベントは、SendWelcomeEmail リスナーによって処理される場合があります。
ディレクトリには、アプリケーションのPolicies
承認ポリシー クラスが含まれています。ポリシーは、ユーザーがリソースに対して特定のアクションを実行できるかどうかを判断するために使用されます。詳細はこちら。