Lumenで手軽にwebアプリを作成
lumenとは?
lumenはlaravelから分離したマイクロフレームワークです。公式の説明だと、lumenはlaravelを使ったプロジェクトに補助するサービスを開発する時に最適なフレームワークです。省略版のlaravelとも考えられるでしょう。
lumenはどんなプロジェクトに適切なのか?
厳密に言うと、lumenはほぼ全てのプロジェクトに適しています(lumenからlaravelに移行するのが簡単なので)。しかし、laravelとの使い分けを考えてみると、下記のようなプロジェクトにはぴったりだと思います:
- wordpressより高度なカスタマイズが必要なwebサイト。
- 中小型のwebアプリ。
- RESTful APIサーバー。
インストール
composer
を使えば、コマンド一発でインストールできます。
lumenのMVC
lumenはlaravelのMVCをそのまま使用しています。しかし、Eloquent(laravelのModel)を使うには、bootstrap/app.php
に下記のコメントアウトを外す必要があります。
ルーター
lumenのルート設定はapp/Http/routes.php
にあります。
Route::Controller?
laravelにRoute::Controller
という便利なメソードがありますが、残念ながらlumenでは使えません。
キャッシュシステム
lumenはlaravelと同じ便利なキャッシュシステムを使っています。一番手早い方法はFacade
を使います。bootstrap/app.php
にある下記のコマンドアウトを外すtoFacade
が使えるようになります。
lumenのキャッシュシステムは三つのストレージを用意しています:file
, memcached
とredis
。どれを使うかは.env
の中で設定します。
.env?
.env
はlaravelの環境変数を設置するファイルです。laravelやlumenのルートに.env-example
というファイルが置いてあります。それを.env
にリネームしてください。ちなみに、.env
を読み込むにはbootstrap/app.php
の// Dotenv::load(__DIR__.'/../');
をコメントアウトから外す必要があります。
Cacheの使い方
Cache
の基本メソード:
メソード名 | 説明 |
---|---|
Cache::put |
キャッシュをセットする(set ではなくput です) |
Cache::get |
キャッシュを取得する |
Cache::forget |
キャッシュを削除する |
Cache::remember
メーソドがよく使います:
まとめ
最近ウェブサイト作成のプロジェクトがあって、完全カスタマイズするので、wordpressは適切ではないと考えています。laravelを使おうと思うところ、lumenの存在を知りました。
laravel5はServiceProvider
を大量に使っていて便利な機能が揃っていますが、簡単なプロジェクトには若干うるさいので、lumenを使ってみることにしました。lumenはlaravelと同じコアなので、laravelに慣れた人には特に支障がないし、必要な機能であればcomposer
足せばいいし、結構使い勝手がいいです。
唯一不満なのは、デフォルトのテンプレートエンジンがないです!そうです、プレンのPHP
を書くか、composer
でtwig
などのテンプレートエンジンを実装するかのいずれかです。よく考えると、lumenは補助サービスを作る用のフレームワークで、APIサーバーという前提だとテンプレートエンジンは不要ですね。(JSON返せばいいから、viewなんかいらないです。)