Laravelの概要
R TIMESサーバーサイトエンジニアのゴです。
今日はPHPフレームワークの中で、最近注目されつつのLaravelについて簡単にお話しをしたいと思います。
フレームワークとは
Webフレームワークには、Webアプリケーションを開発するために必要なライブラリ(プログラム部品)と構造が含まれています。
Laravel5のディレクトリ構成は以下
app -----Commonds -----Console -----Events -----Exceptions -----Handlers -----Commonds -----Events -----Http -----Controllers -----Middleware -----Requests -----Providers -----Services bootstrap config detabase -----migration -----seeds public resources -----assets -----lang -----views storage tests vendor
LaravelはMVCパターンを採用したWebフレームワークで、主な機能は次の通りです。
ここでも、簡単にMVCとは何をお話しします。すでに理解した方はご辛抱していただきたいです。
MVCという名称は、3つの要素「モデル(Model)」「ビュー(View)」「コントローラ(Controller)」の頭文字が並べられたものです。それらの関係性は↓
- アプリケーションの外からのイベント通知はコントロータが処理し、モデルを操作します。
- モデルが更新されるとビューに通知され、画面表示が変わります。
スキーマビルダー
スキーマビルダーとはスクリプトでテーブル作成やカラム追加などの処理が書けます。Laravelのスキーマビルダーは次のDBを対応しています。
1:Sqlite
2:MySQL
テーブルを作成するには、Schema::createメソッドを使用する
Schema::create('company', function($table){ $table->increments('id'); })
最初の引数はテーブル名で、2つ目は無名関数です。新しいテーブルを定義するためのBlueprintオブジェクトを取ります。
マイグレーション
マイグレーションはスキーマビルダーを使ったテーブル作成やカラム追加処理にバージョン管理機能を追加します。Laravelのマイグレーションはマイグレーションフィアルに日時とクラス名を埋め込み、データベースのmigrationsテーブルで管理しています。
書くファイルにはup(),down()2つのメソッドがあって、例えばup()メソッドでテーブル作成処理を書いたら、down()メソッドでテーブル削除処理を書くようにします。
クエリビルダー
LaravelではSQLを直接書く必要がありません。メソッドチェーンを使ってSQL文を組み立てることができます。例えばusersテーブルのusernameカラムが「田中」で始まるユーザーのemailを抽出する場合は
DB::table('users')->select(['email'])->where('username', 'like', '田中*')->get();
Eloquentモデル
Laraveは「Eloquent」というO/Rマッパ(オブジェクト リレショナル マッパ)を持っています。それはデーターベースのレコードをオブジェクトとして扱うパターンの1つです。
Eloquentモデルを定義します。
class Test extends Eloquent{}
また、make:modelコマンドを使用し、Eloquentモデルを生成することもできます。
php artisan make:model Test