フェンリル

Developer's Blog

高機能な PHP フレームワーク Laravel にグッときた

Fenrir Advent Calendar 2016

Fenrir Advent Calendar 2016 21 日目の記事です。

こんにちは。エンジニアの 北川です。
テーマは 「2016 年にグッときたコレ」 です。

私は主に PHP での開発を担当しています。

今回は昨年からよく利用している PHP フレームワークである Laravel についてご紹介します。  

 

 PHP フレームワーク Laravel

Laravel – The PHP Framework For Web Artisans

ここ数年で一気に知名度が上がった印象がある Laravel。Symfony コンポーネントを土台に構築されており、非常に高機能です。

標準的な Web 開発に必要なものはたいてい揃っており、すぐに導入・開発が進められるのが良いところです。

高機能であるがゆえに学習コストが高いですが、結果的に見れば開発効率のアップが見込めると思っています。

管理画面でよくある CRUD 的な機能はすぐに作れるようになっているので、業務では主に CMS 開発で利用することが多いです。

 

特にグッときた Laravel の機能たち

一つ一つ紹介すると本当にたくさんの機能が用意されているので、個人的に特にグッときた機能をご紹介します。

便利な artisan コマンド

コマンドラインインターフェース。コンソールから artisan コマンドを入力することで、開発をサポートする様々な便利機能が利用できます。

・ビルトインサーバーの起動

・データベースマイグレーション(後述)

・Controller などのクラスファイルの生成

・ルーティング一覧の確認

など開発が捗るコマンドがたくさん用意されています。たとえば、

$ php artisan make:controller HogeController

とコマンド実行するだけで Controller クラスファイルが生成されます。

マイグレーション

データベースのスキーマの管理は悩ましいところです。

システムをデプロイする毎に日時ディレクトリを切って DDL を管理したりした経験はありませんか?

マイグレーションを使えばデータベーススキーマを PHP のコードで管理でき、先の artisan コマンド一発で DB に適用することができます。

$ php artisan migrate

と先の artisan コマンドを実行するだけで、最新のスキーマ構成が適用されます。

rollback 機能もあるため、切り戻しも簡単に行えます。

Eloquent(O/Rマッパー)

Eloquent を使うことでデータベースのデータを扱うのが非常に楽になります。

ユーザー情報を取得・作成・削除するような簡単な例を書いてみると下記のようになります。

 

・取得

$user = User::find($id); 

・新規作成

$user = new User()->fill($userData)->save();

・削除

$user = User::destroy($id); 

ここでは簡単に記述しましたが、いろいろな書き方ができるので、逆に混乱するポイントでもあります。

しかしこういった基本的な使い方だけでも慣れてくればかなり実装が楽になります。

もちろん直接 SQL を記述して実行することもできます。

 

最後に

ここまで簡単に紹介してきましたが、便利なだけでなく注意する点もあります。

よく言われることですが、自由すぎる反面、設計指針を統一しておかないと、実装者によってまったく違う作りになってしまう、ということが起きます。

そして動作が遅いということもよく言われますが、ここは適材適所。管理画面は Laravel 、WebAPI は別フレームや違う言語で実装、というように柔軟に開発するといいでしょう。Laravel の軽量版という位置づけの Lumen という軽量フレームワークもあります。

とはいえ Laravel を使った開発は楽しいです。これからのバージョンアップにも期待しています。

 

フェンリルのオフィシャル Twitter アカウントでは、フェンリルプロダクトの最新情報などをつぶやいています。よろしければフォローしてください!

Facebook コメント

コメント

名前(必須)

メールアドレス(必須)

URL

スタイル用のタグが使えます

このコメント欄でのご質問、ご要望には、開発チームから回答できない場合があります。ご質問、ご要望は「User Community」内のフォーラムまでお寄せください。