PHPを触り始めて一年程経過し、「そろそろフレームワークを使ってみたいな!」と思い、PHPのフレームワークの中でも特に人気の高いLaravelを使ってみることにしました。
インストールする前に事前に調べ、まとめたものをノートとしてQiitaに残すことにしました。
フレームワークとは
多くの場合は「Webアプリケーションフレームワーク」のことを指す。
Webアプリ開発を効率よく且つ迅速に進められるように、必要なモジュールやツールをひとまとめにしたもの。
LaravelはPHPにおけるフレームワークの一種である。
Laravelにある主な機能
テンプレートエンジン
「テンプレート」と呼ばれるHTMLのひな形を元にプログラムで加工し、画面に出力するためのライブラリのこと。
これにより、PHPでの開発とHTMLでの開発を分けることができる。
Laravelには「BLADE」というテンプレートエンジンが備わっている。
データベース
主に以下二つの機能が備わっている。
O/Rマッピング
オブジェクト指向で作られたプログラムと関連性データベースを繋げる(マッピング)こと。
これにより実装時のDB操作に関わる煩雑な作業が減らせる為、修正漏れやミスを防ぐことが出来る。
Eloquent
Laravelに搭載されているO/Rマッパー。
DBのレコードをオブジェクトで処理を出来るようにするクラスを提供する。
テーブル名に命名規則が無かったり、DATETIMEやint型のカラムに対してinsert時update時に自動的にtimestampの更新をしてくれる等の特徴を持つ。
コマンドラインインターフェース(CLI)
artisan(アーティサン)と呼ばれるもので構成されている。
これに登録されているコマンドを使って必要なファイルを作ったりDBのマイグレーション(データの抽出・変換して新しい所に移転すること)を行う。
主要な構成
Laravelは以下のシステムで動いている。
特に以下の3つは「MVC」と総称されている。
モデル
データベースと連携を主に行う。(データ処理を担う部分)。
上記のEloquentの機能とビジネスロジックを持ったクラス。
artisanコマンドで作成し、.envファイルで設定を行う。
言わば、バックグラウンド側のシステム
ビュー
画面処理を行うシステム。
送られたリクエストを元にHTMLで画面を表示する。
言わば、フロントエンド側。
コントローラ
モデルとビューの仲介する役割を持つクラス。
モデルからDBにアクセスし、取得したリクエストデータを画面に表れる様加工してビューに流したり、ビューから入ったデータをモデルに渡し、DBに保存するといった処理を行う。
ルーティング
特定のアドレスにアクセスした時、どの機能を呼び出すか設定すること。
Webブラウザから送信されたリクエストデータをコントローラに振り分ける。
マイグレーション
DBの操作を一括で実行・取消できる機能。
DBのテーブル定義やカラムの変更等の一括変更や、設定の取り消し等がコマンドで行うことが出来る。
参考文献
・[paizaラーニング Laravel入門編]
(https://paiza.jp/works/laravel/primer)
・[marronブログ テンプレートエンジンとは?/テンプレートエンジン一覧まとめ]
(http://lovee7.blog.fc2.com/blog-entry-95.html)
・[Think IT O/Rマッピングとは?]
(https://thinkit.co.jp/free/article/0606/13/1)
・[株式会社インターエデュ・ドットコム PHPのORM比較: LaravelのORマッパー(Eloquent)の特徴]
(https://corporate.inter-edu.com/developper/1458)
・[KATUBLO 《laravel》php artisan とは何か?簡単に解説]
(https://katuo-ai.com/2019/03/25/laravel-artisan/)