#Laravelとは
PHPのフレームワークで、webアプリケーションを制作に用いられる。
1 MVCモデルを活用している。
MVCとはビジネスロジックをModelが担当し、表示などをViewが処理に、全体の制御を Controllerで行う形態いなる。
2パッケージ管理はComposerを行なってくれている。
依存関係などもまとめてインストールしてくれる。
3 Eloquent(エロクアント) ORM
データベスの操作を行なってくれている。
Eloquent Object Relational Mappingの略で、データベースとモデルにリレーションを持たせて、データを柔軟に扱えるようにしたもの。
#Laravelのディレクトリ構成
─── Laravel
├── app
├── bootstrap
├── config
├── database
├── public
├── resources
├── routes
├── storage
├── tests
└── vendor
````
##App
アプリケーションのコアコードを配置されている。ほとんどの全部のクラスは、このディレクトリに設定されている。
##bootstrap
フレームワークを初期起動処理するapp.phpファイルを設置している。。このディレクトリには、ルートやサービスのキャッシュファイルなど、パフォーマンスを最適化するためのフレームワークで生成されたファイルを含むcacheディレクトリも含む。通常、このディレクトリ内のファイルを変更する必要はない。
##config
アプリケーションの全設定ファイルを設置している。
##database
マイグレーションとモデルファクトリ、初期値設定(シーディング)を配置している。
このディレクトリをSQLiteデータベースの設置場所としても利用できます。
##public
アプリケーションへの全リクエストの入り口となり、オートローディングを設定するindex.phpファイルがある。また、このディレクトリにはアセット(画像、JavaScript、CSSなど)を配置する。
##resources
Viewと、CSSやJavaScriptなどの未加工のコンパイルされていないアセットを含む。すべての言語ファイルも格納してる。
##routes
```
web.php
api.php
console.php
channels.php
```
アプリケーションのすべてのルート定義を配置している。デフォルトでルートファイルをいくつかLaravelは用意されいる。
web.phpファイルは、RouteServiceProviderがwebミドルウェアグループへ配置するルートを記述する。これにより、セッション状態、CSRF保護、およびクッキー暗号化が提供される。アプリケーションがステートレスのRESTful APIを提供しない場合は、すべてのルートがweb.phpファイルで定義される。
api.phpファイルは、RouteServiceProviderがapiミドルウェアグループへ配置するルートを記述しる。これらのルートはステートレスであることが意図されているため、これらのルートを介してアプリケーションに入るリクエストは、トークンを介してで認証されることを意図しており、セッション状態にアクセスできない。
console.phpファイルは、クロージャベースのコンソールコマンドをすべて定義する場所。各クロージャはコマンドインスタンスと結合されるため、各コマンドのIOメソッドを操作する簡単なアプローチが可能。このファイルはHTTPルートを定義しませんが、アプリケーションへのコンソールベースのエントリポイント(ルート)を定義している。
channels.phpファイルは、アプリケーションがサポートするすべてのイベントブロードキャストチャンネルを登録できる場所。
##storage
```
app
framework
logs
```
ディレクトリに分離される。
appディレクトリは、アプリケーションが作成したファイルを保存するために使用できる。
frameworkディレクトリは、フレームワークが作成したファイルとキャッシュを保存するために使用する。
最後に、logsディレクトリにはアプリケーションのログファイルを保存している。
##tests
自動テストを設置する。
#vendor
Composerによる依存パッケージが配置されます。