Laravel公式を読み解く 3. Laravel 5.5 ディレクトリ構造
【ポイント】
・クラスがComposerによりオートローディングできるならばクラスの配置場所はどこでも良い。
・モデル=Eloquent
・appディレクトリはデフォルトで、App名前空間のもとに置かれており、Composerがオートロードしている。=appディレクトリ以下にあるファイルはrequire_onceしなくても使える。
でいろいろなファイルをappディレクトリ内に作成できる。
・appディレクトリ内の下記フォルダはデフォルトでは存在しない。Artisanコマンド実行によって作成される。
Events、Jobs、Listeners、Mail、Notifications、Policies、Rules
・Artisanコマンド自体、自作できる。
全Artisanコマンドはapp\Console内に作成される。
・Providersディレクトリには、プロバイダを自由に追加できる。
【今度深堀したい】
・routes/console.phpファイル
【新知識】
①「クラスがComposerによりオートローディングできるならば、Laravelはクラスをどこに配置するか強制することはまずありません。」
オートロードとは
実行時に足りないクラス(ファイル)を自動ロードできる仕組み。
PHPでは1ファイルに1クラスが基本だが、多くのクラスを使う場合、大量にrequire_onceしないといけない。また、実行してエラーが出るまでrequire_once漏れに気づかない。
vendor/autoload.phpがオートロードの実体ファイル。
このファイルを一度だけrequireすることで、vendor配下のライブラリをすべて自動的にロードしてくれる。
オートロードするファイルを追加したければcomposer.jsonに追記する。
"autoload": {
"psr-4": {
"foo\\": "bar/"
}
},
https://laraweb.net/surrounding/1642/
https://www.keicode.com/cgi/autoload-class.php
②「もしアプリケーションがステートレスではなく、RESTフルなAPIを提供しないのであれば、すべてのルートはweb.phpファイルの中で定義されることになるでしょう。」
ステートレスとは
サーバーがクライアントのセッション情報を保持しないこと。
https://qiita.com/mtakehara21/items/efcbbc3ba58a62c10eb6
③セッションステートとは?
→また今度。
④「ConsoleとHttpディレクトリは、アプリケーションの「コア」へAPIを提供していると考えてください。」
APIとは?
「俺に仕事をさせたけりゃ、これに従え!」な、プログラムの部品や機能の取扱説明書のこと。
もう少し具体的に書くと
その機能と関係ないプログラムとかから、その機能を利用できるように用意された、その機能との窓口部分(に関する決まり事)のこと。