大企業営業から未経験ITエンジニアを目指すブログ

アラサー大企業営業から未経験ITエンジニアを目指すブログ。日々学んだことを忘備録的に記します。

Laravel公式を読み解く 3. Laravel 5.5 ディレクトリ構造

【ポイント】

・クラスがComposerによりオートローディングできるならばクラスの配置場所はどこでも良い。

 

・モデル=Eloquent

 

・appディレクトリはデフォルトで、App名前空間のもとに置かれており、Composerがオートロードしている。=appディレクトリ以下にあるファイルはrequire_onceしなくても使える。

 

php artisan make:???

 でいろいろなファイルを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とは?

「俺に仕事をさせたけりゃ、これに従え!」な、プログラムの部品や機能の取扱説明書のこと。

もう少し具体的に書くと

その機能と関係ないプログラムとかから、その機能を利用できるように用意された、その機能との窓口部分(に関する決まり事)のこと。

https://wa3.i-3-i.info/word12428.html