Laravel基礎知識
MVCフレームワーク
Laravelは、MVCフレームワークを採用している。アプリケーションをModel-View-Controllerの各機能に分けて整理し、これらのパーツを作ることで開発を行う。
Modelとは、そのアプリケーションが扱う領域のデータと手続き(ビジネスロジック - ショッピングの合計額や送料を計算するなど)を表現する要素である。
Viewとは、モデルのデータを取り出してユーザが見るのに適した形で表示する要素である。すなわち、UIへの出力を担当する。例えば、ウェブアプリケーションではHTML文書を生成して動的にデータを表示するためのコードなどにあたる。
Controllerとは、ユーザからの入力(通常イベントとして通知される)をモデルへのメッセージへと変換してモデルに伝える要素である。すなわち、UIからの入力を担当する。モデルに変更を引き起こす場合もあるが、直接に描画を行ったり、モデルの内部データを直接操作したりはしない。
ComposerとSymfonyの導入
Larravelは、プログラムの土台部分にSymfonyを導入している。SymfonyはPHPの世界で古くから使われているフレームワークで、大規模な開発に多くの実績がある。
また、Laravelのインストールやソフトウェアのインストールなどは、全て「Composer」というパッケージ管理ツールを使用して行う。これにより、プログラムの管理が非常に容易になっている。
ORMやBladeテンプレート
Laravelでは、データベースアクセスに、ORMというデータベースとオブジェクト指向言語間の非相互なデータを変換するプログラミング技法を導入している。これにより、PHPのオブジェクトを扱うようにデータベースを利用できる。
また画面の表示には、Bladeというテンプレートエンジンを搭載している。Bladeとはクラスのように階層化したテンプレートエンジンで、ヘッダーやフッターなどの決まりきった共通部分は基底のテンプレート(親ビュー)に定義して、body の中だけを(子ビュー)で定義するといった使い方をする。
ルーティング
ルーティングとは、ブラウザから届いたリクエスト(HTTPメソッド+URL)に対して、コントローラーで定義したアクションを結びつける機能のことである。要は、「〇〇というアドレスにアクセスをしたら、xxxという処理を呼び出す」という関連付けを行う機能のことを指す。
このルーティングに関する情報をまとめているのが、routesフォルダである。