Webサービス開発者必見!フレームワークLaravelの魅力とは | 千葉で集客ホームページ制作はティーエスフォート
コラム

Webサービス開発者必見!フレームワークLaravelの魅力とは

今回の記事では、Webアプリケーションフレームワークの1つであるLaravelについてご紹介します。スピードの速い変化が求められる時代、開発もゼロから行うのではなく、フレームワークを用いて、ある程度は用意された状態から開発を行う方がスムーズです。

Laravelとは

Laravel は、リフレクションを使った柔軟な DI (Dependency Injection: 依存性注入) ができるフレームワークです。リフレクションは、プログラムの中でそのプログラムに含まれる型や変数、メソッドの情報を参照・操作できる仕組みです。Laravelには次のような特徴があります。

  • 他のフレームワークに比べると学習コストが低い
  • コードが読みやすく記述量が少ない
  • ログイン認証(ユーザー登録・認証など)
  • 本番環境へのアップロードが他のフレームワークに比べて簡単

Laravelの機能紹介

いくつかの代表的な機能をご紹介します。

ルーティング

ルート(route)とは、URLとコントローラーのアクションの対応ルールのことです。対応ルールを作成することをルーティングと呼びます。このルーティングがあると処理を一つのクラスやファイルにまとめる事ができます。「このURLでアクセスされた時にはこのコントローラーのアクションを呼び出してください。」ということをアプリケーションにお願いします。

Blade

BladeとはLaravelで使えるテンプレートエンジンのことです。テンプレートエンジンは、データをテンプレート(ひな型)に流し込んで、最終的にユーザに見せる画面を作り出す工場のような役割をします。

例えばブログ投稿システムの場合、タイトルや本文、コメント欄などのレイアウトはどの投稿でも共通なのでテンプレート化できますが、記事によってタイトルや本文、コメント欄の中身(データ)は違います。そこで、テンプレートエンジンがテンプレートとデータを結合して、ユーザに見せるべき画面を作ってくれるというわけです。

DI

開発を進めていく中で、クラスのインスタンス同士がさまざまな依存関係になり、複雑になるという問題があります。この依存度を極力さげる仕組みがDIです。LaravelではこのDIを実現させるためにサービスコンテナという仕組みを使っています。

ソースコードやメソッド、クラスが増えれば増えるほど、それらの間の関係性がわからなくなってくることはよくあるのではないでしょうか。

データベース連携

PHPとデータベース連携を行うには定型処理が必要となります。この定型処理は短く、シンプルなものでなく少し複雑で長いコードとなります。Laravelではそういった定型処理をおこなってくれる機能が備えられています。定型処理を自分でコードにするのではなく、自動で行ってくれる機能があれば便利ですよね。

認証の自動化

webシステムではログインなどの認証処理が含まれることが多々あります。そういった時に一つ一つ毎回ログイン処理の機能を作るのは大変手間が掛かります。しかしLaravelではそういった認証を自動化してくれる機能があります。ログイン処理はWebサービスにはほぼ必要な機能でしょう。どのサービスにも必要なものを毎回作るのはバカらしいので、自動化してくれると便利ですね。

Laravelのヘルパー関数

Laravelのヘルパー関数とは、Laravelフレームワークで用意されているとても便利な関数です。PHPネイティブの関数とは別の関数です。

DI と サービスコンテナ

機能のところでご紹介したように、Laravel にはDI の仕組みが内蔵されていて、メソッドの引数にインジェクトしたいオブジェクトを書くだけで、DI が可能です。

以下は、RESTful な API を提供するコントローラーの例です。

UserController.php

<?php
namespace App\Http\Controllers;
use App\User;
class UserController extends Controller
{
    private $user;
    public function __construct(User $user)
    {
        $this->user = $user;
    }
}

これだけで、コントローラー内のすべてのメソッドから、いちいち new することなく User クラスのメソッドを呼び出すことができます。

まとめ

今回の記事では、フレームワークのLaravelについてご紹介しました。

Laravelは他のフレームワークに比べると学習コストが低く、ログイン認証が可能、また本番環境へのアップロードが簡単という特徴を持っています。

Webシステム開発にフレームワークの導入を考えている方がいたら、ぜひ検討してみてはいかがでしょうか。

 

ページ先頭へ