【Laravel入門】Laravelの使い方を初心者向けに解説!できることや作れるものは?OS別導入方法と正誤表も確認
はじめに
Laravelは2011年に開発されたPHPフレームワークです。
多機能かつ、かゆいところに手が届く柔軟性の高さを理由に導入する企業が増えており、人気が上昇中です。
先に世に出たCakePHPと同じく、MITライセンスのためフリーで商業利用できます。
この記事では、Laravelの特徴や導入方法と使い方、学習方法について説明します。
<関連記事>
【CakePHP入門】CakePHPの特徴や使い方を解説!インストールや初期設定は?参考になるチュートリアルと書籍も紹介
Laravelの特徴
MVCパターンの設計思想
Laravelのソフトウェア設計はMVC規約に基づいています。
- Model:データの処理を行う
- View:ユーザーへのUI表示を行う
- Controller:全体の制御を行う
Webアプリでは特に開発の分担や機能差し替えを容易にするため、機能をこの3つに分けて開発されることが多いです。
フレームワークであるLaravel側がこの設計思想に合致していれば開発効率もさらに上がるので、ここも人気の理由といえます。
<関連記事>
MVCとは?MVCの基本をわかりやすく解説!設計でのそれぞれの役割と機能は?MVC使用のメリットと有効な使い方もご紹介
Artisanによる高速開発
Artisanはアルチザンと読み、職人という意味です。その名の通り何でも任せて安心な心強い味方です。
具体的には、Webアプリ開発に必要となる様々な機能がこのコマンドラインインターフェイスに用意されています。
例えばMVCクラスファイルの生成やデータベースのマイグレーションなど、コマンド一発で行うことができとても便利です。
更にはコマンドを自分で定義することも可能なので、まさにかゆいところに手が届くわけです。
汎用的でよく使われる機能は既存コマンドに入っていますが、例えば社内の特有ルーチン等はコマンドにしてメンバーで共有しておけば効率UPに効果的です。
Eloquent ORMによる直感的なDB操作
Laravel独自のO/RマッパーとしてEloquentが用意されています。
これはデータベースとモデルを関連づけて操作しやすくするもので、コードのシンプル化やメンテナンス性向上に役立ちます。
Laravelの導入方法
Windowsの場合
まずはXAMPPをダウンロードしインストールします。
次にPHP関連のパッケージ管理ツールであるComposerを使いPHPをインストールします。
Composerのサイトからインストーラをダウンロードし、ダブルクリックしてインストールを進めてください。
XAMPPとComposerのインストールが完了したら、コマンドプロンプトを開いて次のように入力します。
「sample」の部分には任意のプロジェクト名を入れてください。
- composer create-project –prefer-dist laravel/laravel sample
- cd sample
- php artisan serve
ブラウザを開いてhttp://127.0.0.1:8000にアクセスし、Laravelの画面が表示されれば成功です。
MaxOS/Linuxの場合
ターミナルを開き、下記の手順でPHPとLaravelのインストールを行いパスも通します。
- curl -sS https://getcomposer.org/installer | php
- composer create-project –prefer-dist laravel/laravel sample
- 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クラスを使用しルーティングを定義します。
- Route::get(‘hello’, function()
- {
- return ‘ようこそ’;
- });
- Route::post(‘articles/{month}’, function()
- {
- return $month.’月の記事を表示します’;
- });
Routeクラスにはget、post、put、deleteといったメソッドが用意されており、それぞれ同名のHTTPメソッドに対応しています。
第一引数にはURL、第二引数にはコールバック処理が入ります。
上記のコードでは/helloにアクセスすると「Hello」が表示され、/month/4にアクセスすると「4月の記事を表示します」と表示されます。
実際はその文言だけが表示されても意味がないので、ここで4月の記事を表示するビューの呼び出し処理が記載されます。
Laravelの使い方:②ビューの作成
ビューはapp/viewsディレクトリに設置され、HTMLとBladeベースで作成します。
Bladeとは
ここで聴き慣れない単語「Blade」が出てきました。
BladeはLaravelのテンプレートエンジンのことで、PHPのコーディングをなるべく早くできるよう簡易化するためのものです。
最初は慣れないと思いますが、慣れてしまえばむしろ普通のPHPコーディングが苦痛になるかもしれません。
詳しくは公式のBladeドキュメントをご参照ください。
ビュー例とViewクラス
次にビューの例を見てみましょう。まずは1つ目をlayout.blade.phpというファイルとします。
- <html>
- <body>
- <p>TOPページ</p>
- @yield(‘item’)
- </body>
- </html>
次に2つ目は先のlayoutを継承したhello.blade.phpとします。
- @extends(‘layout’)
- @section(‘item’)
- ようこそ
- @stop
先ほどのルーティングのコールバック処理部では、このhelloビューをViewクラスのmakeメソッドで呼び出すように変更できます。
- Route::get(‘hello’, function()
- {
- return View::make(‘hello’);
- });
Laravelの使い方:③データベースの作成
ここではデータベースの取り扱い方法を見てみましょう。
マイグレーションファイルの作成
Laravelではデータベースを抽象化しインターフェイスを統一しています。
そのため、まずは開発者がどのような設計のデータベースを作ろうとしているかの明確化が必要です。
この設計書に当たるのがマイグレーションファイルです、下記のartisanコマンドで作成できます。
「create_users_table」の部分はファイル名ですので任意の文字列を入れて下さい。
- php artisan migrate:make create_users_table
app/database/migrations/の下に「日時_create_users_table」の名前のファイルがあれば、それがマイグレーションファイルです。
ファイルを開くと下記のようになっています。
up()にはマイグレーション実行時の処理を、down()にはup()で行なった処理を元に戻す場合の処理を記載します。
- class CreateUsersTable extends Migration {
- /**
- * Run the migrations.
- *
- * @return void
- */
- public function up()
- {
- //
- }
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- //
- }
- }
この中に作りたいデータベーステーブルの設計を記載します。
- public function up()
- {
- Schema::create(‘users’, function($table)
- {
- $table->increments(‘id’);
- $table->string(‘email’)->unique();
- $table->string(‘name’);
- $table->timestamps();
- });
- }
- public function down()
- {
- Schema::drop(‘users’);
- }
マイグレーションの実行
下記のartisanコマンドでマイグレーションしテーブルを作ることができます。
- php artisan migrate
もしマイグレーションをロールバックしたい場合は下記のコマンド で実施できます。
- php artisan migrate:rollback
Laravelの使い方:④Forgeで簡単デプロイ
完成したWebアプリをクラウドへデプロイするために、LaravelはForgeというツールを提供しています。
こちらを使用すると、Amazon EC2やDigitalOceanなどのクラウドサービスと連携することが可能です。
実際に、GitHub等で開発をし、変更があるたび自動でデプロイを行ってくれます。
有償ではありますが、デプロイの手間を省くのに有効なのは間違いありません。
チュートリアル
Laravelの公式ページには十分な日本語ドキュメントが用意されており、学習には困りません。
まずはクイックスタートに取り組んでみるのがおすすめです。インストールから実際に動かすまでの方法が順を追って説明されています。
わかりにくいキーワードがあっても、リンクが埋め込まれておりそのキーワードの詳細説明ページにジャンプできるため便利です。
Laravel学習におすすめの書籍
入門にはこれ!わかりやすい解説書
Laravelの入門本として人気の高い書籍です。
多少のPHPに関する前提知識は必要ですが、Laravelに限らずPHPフレームワーク自体が初めてという方にもおすすめです。
正誤表があるので読む際にはご注意ください。
実践向けはこの1冊
PHPフレームワーク Laravel実践開発(秀和システム)
コア機能であるルーティングからデータアクセスについて、より詳細に説明が記載されています。
また、ジョブ管理やフロントエンド連携、ユニットテストにArtisan独自コマンドの開発方法等、一歩進んだ実践的な内容が豊富です。
こちらも正誤表があるので注意してください。
まとめ
PHPフレームワークのLaravelについて、その特徴と使い方をお伝えしました。
多機能なフレームワークですので、こちらで紹介しきれなかった機能もたくさんあります。
Laravel公式ページもぜひご参考にしてみてください。
また、PHPにはLaravel以外にもCakePHPやFuelPHPなど、多数のフレームワークが存在しています。
PHPのフレームワークについてもっと知りたいという方は、以下の記事もぜひ併せてご参照ください。
【PHPフレームワーク】初心者におすすめのPHPフレームワークと学習方法を徹底解説!わかりやすい学習サイトや参考書も紹介
PHPフレームワークとは?おすすめのフレームワーク11選やトレンド、選び方も解説【2023年最新版】
toiroフリーランスは、SHIFTグループがプライムとして参画している独自案件をフリーランスエンジニア向けに紹介する唯一のプラットフォームサービスです。
エージェントによるサポートもありますので、ご利用を検討してみてはいかがでしょうか。