はじめに

プラス記号の仮想を持っている手は、コピースペースで肯定的なもの(特典、個人的な開発、ソーシャルネットワーク、健康保険など)を提供することを意味します


Laravelは2011年に開発されたPHPフレームワークです。

多機能かつ、かゆいところに手が届く柔軟性の高さを理由に導入する企業が増えており、人気が上昇中です。

先に世に出たCakePHPと同じく、MITライセンスのためフリーで商業利用できます。

この記事では、Laravelの特徴や導入方法と使い方、学習方法について説明します。


Laravelの特徴


MVCパターンの設計思想

MVCモデル


Laravelのソフトウェア設計はMVC規約に基づいています。

  • Model:データの処理を行う
  • View:ユーザーへのUI表示を行う
  • Controller:全体の制御を行う

Webアプリでは特に開発の分担機能差し替えを容易にするため、機能をこの3つに分けて開発されることが多いです。

フレームワークであるLaravel側がこの設計思想に合致していれば開発効率もさらに上がるので、ここも人気の理由といえます。


Artisanによる高速開発

プログラムのコード


Artisanはアルチザンと読み、職人という意味です。その名の通り何でも任せて安心な心強い味方です。

具体的には、Webアプリ開発に必要となる様々な機能がこのコマンドラインインターフェイスに用意されています。

例えばMVCクラスファイルの生成やデータベースのマイグレーションなど、コマンド一発で行うことができとても便利です。

更にはコマンドを自分で定義することも可能なので、まさにかゆいところに手が届くわけです。

汎用的でよく使われる機能は既存コマンドに入っていますが、例えば社内の特有ルーチン等はコマンドにしてメンバーで共有しておけば効率UPに効果的です。


Eloquent ORMによる直感的なDB操作



Laravel独自のO/RマッパーとしてEloquentが用意されています。

これはデータベースとモデルを関連づけて操作しやすくするもので、コードのシンプル化メンテナンス性向上に役立ちます。


Laravelの導入方法


Windowsの場合

白いノートパソコン


まずはXAMPPをダウンロードしインストールします。

次にPHP関連のパッケージ管理ツールであるComposerを使いPHPをインストールします。

Composerのサイトからインストーラをダウンロードし、ダブルクリックしてインストールを進めてください。

XAMPPとComposerのインストールが完了したら、コマンドプロンプトを開いて次のように入力します。

「sample」の部分には任意のプロジェクト名を入れてください。

  1. composer create-project –prefer-dist laravel/laravel sample
  2. cd sample
  3. php artisan serve

ブラウザを開いてhttp://127.0.0.1:8000にアクセスし、Laravelの画面が表示されれば成功です。


MaxOS/Linuxの場合



ターミナルを開き、下記の手順でPHPとLaravelのインストールを行いパスも通します。

  1. curl -sS https://getcomposer.org/installer | php
  2. composer create-project –prefer-dist laravel/laravel sample
  3. php -S localhost:8000 -t public

ブラウザを開いてhttp://127.0.0.1:8000にアクセスし、Laravelの画面が表示されれば成功です。


素早く試すにはHomesteadを使おう

ノートパソコン


PHPの開発環境を揃えるには、足りないソフトがある度つまずいたりして思いの外時間がかかることがあります。

そんな時のために用意されているのが、Laravel Homesteadという仮想マシンのローカル開発環境です。

この仮想環境には下記のソフトウェア郡が予めインストールされていて、すぐにLaravelを使い始めることができます。

  • Nginx
  • PHP
  • MySQL
  • Redis
  • Memcached
  • Beanstalk

詳しい使用方法は公式ページのHomesteadチュートリアルをご参照ください。


Laravelの使い方:①アクセスをルーティング

ここからは実際にLaravelでどのようなことができるか見ていきましょう。


ルーティングとは

と可視化されたネットワーク


例えば、コントローラーにアクション(メソッド)をいくつか作成したとします。

ブラウザ越しにユーザーからなされたリクエストに対しどのアクションを返すかは、アクセスしたURLで制御されるのが一般的です。

このURLにアクセスがあったらこのアクションを実行せよ、というふうにURLとアクションを紐付けすることをルーティングと呼びます。


Routeクラスとルーティングファイル

知性的なビジネス分析


ルーティングの中核を担うのがルーティングファイルです。

Laravelのバージョンによりルーティングファイルの場所やファイル名が異なる可能性があるため、最新のドキュメントでご確認下さい。

大抵はこのファイルにルーティングしたい内容をまとめて記載しますが、コントローラー等に直接書くことも可能です。

次のようにRouteクラスを使用しルーティングを定義します。

  1. Route::get(‘hello’, function()
  2. {
  3. return ‘ようこそ’;
  4. });
  5. Route::post(‘articles/{month}’, function()
  6. {
  7. return $month.’月の記事を表示します’;
  8. });

Routeクラスにはgetpostputdeleteといったメソッドが用意されており、それぞれ同名のHTTPメソッドに対応しています。

第一引数にはURL、第二引数にはコールバック処理が入ります。

上記のコードでは/helloにアクセスすると「Hello」が表示され、/month/4にアクセスすると「4月の記事を表示します」と表示されます。

実際はその文言だけが表示されても意味がないので、ここで4月の記事を表示するビューの呼び出し処理が記載されます。


Laravelの使い方:②ビューの作成

ビューはapp/viewsディレクトリに設置され、HTMLBladeベースで作成します。


Bladeとは

ビジネスマンの手元のクローズアップ


ここで聴き慣れない単語「Blade」が出てきました。

BladeはLaravelのテンプレートエンジンのことで、PHPのコーディングをなるべく早くできるよう簡易化するためのものです。

最初は慣れないと思いますが、慣れてしまえばむしろ普通のPHPコーディングが苦痛になるかもしれません。

詳しくは公式のBladeドキュメントをご参照ください。


ビュー例とViewクラス

Webサイト


次にビューの例を見てみましょう。まずは1つ目をlayout.blade.phpというファイルとします。

  1. <html>
  2. <body>
  3. <p>TOPページ</p>
  4. @yield(‘item’)
  5. </body>
  6. </html>

次に2つ目は先のlayoutを継承したhello.blade.phpとします。

  1. @extends(‘layout’)
  2. @section(‘item’)
  3. ようこそ
  4. @stop

先ほどのルーティングのコールバック処理部では、このhelloビューをViewクラスのmakeメソッドで呼び出すように変更できます。

  1. Route::get(‘hello’, function()
  2. {
  3. return View::make(‘hello’);
  4. });


Laravelの使い方:③データベースの作成

ここではデータベースの取り扱い方法を見てみましょう。


マイグレーションファイルの作成

データベース


Laravelではデータベースを抽象化しインターフェイスを統一しています。

そのため、まずは開発者がどのような設計のデータベースを作ろうとしているかの明確化が必要です。

この設計書に当たるのがマイグレーションファイルです、下記のartisanコマンドで作成できます。

「create_users_table」の部分はファイル名ですので任意の文字列を入れて下さい。

  1. php artisan migrate:make create_users_table

app/database/migrations/の下に「日時_create_users_table」の名前のファイルがあれば、それがマイグレーションファイルです。

ファイルを開くと下記のようになっています。

up()にはマイグレーション実行時の処理を、down()にはup()で行なった処理を元に戻す場合の処理を記載します。

  1. class CreateUsersTable extends Migration {
  2. /**
  3. * Run the migrations.
  4. *
  5. * @return void
  6. */
  7. public function up()
  8. {
  9. //
  10. }
  11. /**
  12. * Reverse the migrations.
  13. *
  14. * @return void
  15. */
  16. public function down()
  17. {
  18. //
  19. }
  20. }

この中に作りたいデータベーステーブルの設計を記載します。

  1. public function up()
  2. {
  3. Schema::create(‘users’, function($table)
  4. {
  5. $table->increments(‘id’);
  6. $table->string(‘email’)->unique();
  7. $table->string(‘name’);
  8. $table->timestamps();
  9. });
  10. }
  11. public function down()
  12. {
  13. Schema::drop(‘users’);
  14. }

 


マイグレーションの実行



下記のartisanコマンドでマイグレーションテーブルを作ることができます。

  1. php artisan migrate

もしマイグレーションをロールバックしたい場合は下記のコマンド で実施できます。

  1. php artisan migrate:rollback

 


Laravelの使い方:④Forgeで簡単デプロイ



完成したWebアプリをクラウドへデプロイするために、LaravelはForgeというツールを提供しています。

こちらを使用すると、Amazon EC2DigitalOceanなどのクラウドサービスと連携することが可能です。

実際に、GitHub等で開発をし、変更があるたび自動でデプロイを行ってくれます。

有償ではありますが、デプロイの手間を省くのに有効なのは間違いありません。


チュートリアル

情報検索


Laravelの公式ページには十分な日本語ドキュメントが用意されており、学習には困りません。

まずはクイックスタートに取り組んでみるのがおすすめです。インストールから実際に動かすまでの方法が順を追って説明されています。

わかりにくいキーワードがあっても、リンクが埋め込まれておりそのキーワードの詳細説明ページにジャンプできるため便利です。


Laravel学習におすすめの書籍


入門にはこれ!わかりやすい解説書

PHPフレームワーク Laravel入門


PHPフレームワーク Laravel入門(秀和システム)

Laravelの入門本として人気の高い書籍です。

多少のPHPに関する前提知識は必要ですが、Laravelに限らずPHPフレームワーク自体が初めてという方にもおすすめです。

正誤表があるので読む際にはご注意ください。


実践向けはこの1冊

PHPフレームワーク Laravel実践開発


PHPフレームワーク Laravel実践開発(秀和システム)

コア機能であるルーティングからデータアクセスについて、より詳細に説明が記載されています。

また、ジョブ管理やフロントエンド連携、ユニットテストにArtisan独自コマンドの開発方法等、一歩進んだ実践的な内容が豊富です。

こちらも正誤表があるので注意してください。


まとめ

PHPフレームワークのLaravelについて、その特徴と使い方をお伝えしました。

多機能なフレームワークですので、こちらで紹介しきれなかった機能もたくさんあります。

Laravel公式ページもぜひご参考にしてみてください。