ウェブ職人のためのPHPフレームワーク というフレーズに「これは僕のためのFWだ、、、」と思いながらも1年以上たってしまったLaravel。
この度ようやく触れる機会に恵まれ、最近のトレンドを存分に味わいました。

この記事ではLavelの紹介と、Macへの導入をまとめます。

Laravel

Laravel(ららべる)はCakePHPと並んで、最も注目を集めているPHPフレームワークです。
オープンソースで、ライセンスはMITライセンス。

MVC関連の機能はもちろんファサード(Facade)などモダンな機能を多数で搭載しており、使えるフレームワークに仕上がっています。

DBには使い勝手の良いクエリビルダーだけではなく、強力でスピーディーな開発を可能とするEloquent ORMマイグレーションにも対応。

そしてもちろんComposerで依存関係の解消も楽勝!

フレームワークの制約も比較的ゆるく 「好きなところに好きなものを置けばいいじゃん」 という思想で設計されており、このあたりもWeb職人が好むポイントなのかな、と思います。

日本語サイト


http://laravel.jp/

こちらが日本語サイトです。

上部のクイックスタートからすぐにフレームワークの導入にすすむことができます。
デザインもシンプルなので迷いません。

バージョン

2015年11月現在現在バージョン4.2.0と5.x系がダウンロードできます。

4系から5系へのバージョンアップでは、いくつか大きな変更があったようですから、これから始める場合は5系が良いでしょう。

必要要件となるPHPバージョンは以下をご覧ください。

Laravel PHP
4.2.0 5.4
5.0.0 5.4
5.1 LTS 5.5.9

ほかにも以下のPHP拡張を有効にする必要があります。

  • Mcrypt PHP拡張
  • OpenSSL PHP拡張
  • Mbstring PHP拡張
  • Tokenizer PHP拡張

ドキュメントとクイックスタート

こちらがドキュメント。
メニューなど余計なものを画面上から排除しているため見通しが良いです。

メニューのギミック

メニューは通常非表示となっており、ヘッダ左右に配置されたボタンを押下するとスライドインしてくるというギミックが搭載されています。

左右メニューの内容は同じですが、メニューの展開方法が異なります。

クイックスタートの注意

公式のTOPから遷移すると、バージョン4.2.0のクイックスタート が表示されます。
前述のとおり、4.2.0が最新ではありませんので、ヘッダからドキュメントの対象バージョンをチェックしてみてくださいね。

ドキュメントの対象バージョンは、右メニューより切り替えることができます。

こんなところまでWeb職人好み


メニューの色表示より、ドキュメントのカラースキームを変更することができます。
Solarized DarkGitHubといったおなじみのスキームでドキュメントを読むことが可能です。

面白いですね!

MacでLaravelのプロジェクトを作成する

Mac OS XにLaravel 5.0.0 を導入します。

最新盤をインストールしたい方は適宜バージョンを読み替えていってください。


Vagrantを構築済みであれば、Laravel公式から提供されているboxを利用することもできますよ。

Homestead
http://readouble.com/laravel/5/0/0/ja/homestead.html

※今回はMac上にLaravelを構築する内容です。

事前準備

PHPのバージョンアップ

ターミナルを起動し$ php -vを打ってPHPバージョンを確認します。
Mac OS Xに標準でインストールされているPHPバージョンは5.3です。

Laravel 5.0.0ではPHP5.4以上が必須のため必要に応じてバージョンアップを行います。

次のコマンドを打ってPHP5.4をインストールします。

$ curl -s http://php-osx.liip.ch/install.sh | bash -s 5.4

インストール完了後、次のコマンドでPHP5.4がインストールされたことを確認してください。

/usr/local/php5/bin/php -v

この状態ですと ApacheではPHP5.4 が、ターミナルではPHP5.3 が使用される状態になっています。
ターミナルでもPHP5.4が使用されるように.bash_profileを編集し、PAHTを定義します。

次のコマンドを実行し、ファイル編集を開始します。

$ vi ~/.bash_profile

.bash_profileに次の行を追加、保存してください。

export PATH=/usr/local/php5/bin:$PATH

ターミナルに戻り、次のコマンドを実行するとPATHの設定が即反映されますよ。

$ source ~/.bash_profile

もう一度$ php -vを実行し、PHPバージョンが5.4にアップしたことを確認してください。


PHPのバージョンアップは以下サイトを参考に行いました。

Shin x blog
Macで一番簡単にPHP5.4をインストールする方法
http://www.1x1.jp/blog/2012/05/php_54_for_mac_os_x_as_binary_package.html

Composer

Composerとは

Composerは各種ライブラリ依存性を管理するためのツールです。

composer.jsonファイルに必要なライブラリを定義してコマンドを実行するだけで、ネット上からプログラムをDLし、すぐにプログラムから呼び出すことができるようにしてくれます。

最近のモダンフレームワークはComposerを導入しているものが多いため、なじみがある方も多いのではないかと思います。

Composerのインストール

curlコマンドを使ってComposerをインストールします。
ターミナルで次のコマンドを実行してください。

$ curl -sS https://getcomposer.org/installer | php

The detect_unicode setting must be disabled.というエラーが発生した場合は次のオプションをつけてコマンドを実行します。

$ curl -sS https://getcomposer.org/installer | php -d detect_unicode=Off

インストール後Composerをパスが通っている位置に移動します。

$ sudo mv composer.phar /usr/local/bin/composer

インストールは完了です。

composer –versionを実行して動作をチェックしましょう。

Laravelインストーラー

事前準備が長くなりましたが、ようやくLaravelです。

composerを使ってLaravelインストーラーをダウンロードします。

$ composer global require "laravel/installer=~1.1"

これでLaravelの新しいプロジェクトを作成できるようになりました。

プロジェクト作成

新しいプロジェクトを作りには次の2つの方法があります。

  • laravel new
  • Composer Create-Project

composerコマンドからプロジェクトを生成すると、いくつかの手順がスキップできますのでこちらを実行します。

$ cd /path/to/project/
$ composer create-project laravel/laravel MyProject 5.0

途中アプリケーションキーの入力が求められます。 少し待つとファイル一式が生成されプロジェクトのスケルトンが完成します。

次にcomposer installを実行して依存ライブラリをインストールします。

$ cd MyProject
$ composer install

vendor以下に大量のファイルが生成されています。 vendorは composerが管理する場所のため「自分では手を入れない」 というルールを覚えておいてください。

ドキュメントによるとプロジェクトのスケルトンには「ユーザー登録と認証のためのスキャフォールド」が含まれているので、こちらを削除してお行きます。

$ php artisan fresh

プロジェクトのセットアップ

パーミッション

クイックスタートに従って_storageとvendorフォルダー下に書き込みアクセスを設定してください。

.env

ローカルPC用のセットアップに.ENVファイルを編集します。
composerコマンドからプロジェクトを生成した場合は.ENVファイルが生成済みです。

APP_ENV=local
APP_DEBUG=true
APP_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ローカル環境のデータベース接続先なども.ENVに定義します。
.ENVファイルがある場合、ほかの設定ファイルよりも_.ENVファイルの内容が優先され_ますよ。

またドキュメントに記載がある通り.gitignoreに.ENVを追加してコミットされないようにしておきます。 composerから生成した場合は、こちらも設定済みです。

名前空間の変更

初期状態では「App」という名前空間が設定されていますが、コマンド1つで変更できますので、ぜひ変更しておきましょう。

$ php artisan app:name MyGreatApp

app.php

アプリケーションの基本動作はconfig/app.phpで定義します。
URLやロケールを設定してサーバを起動してみましょう。

'url' => 'http://localhost:8080/',
'locale' => 'ja',

ビルドインサーバを起動

PHP5.4から導入されたビルドインサーバを使ってプロジェクトを動かしてみましょう。

cd /path/to/larabel/public
$ php -S localhost:8080

ブラウザからhttp://localhost:8080にアクセスし_You have arrived_が表示されればOKです。 お疲れ様でした。


クイックスタートではページの追加やDBアクセスまでフォローされていますので、起動後は一通りクイックスタートまでこなしてみることをオススメします。

composer installが上手くいかない場合

私はcomposer install中に接続できないリポジトリがあり、何度かインストールに失敗してしまっていました。

すると please create a GitHub OAuth token to go over the API rate limit というエラーが出て、今まで問題がなかったリポジトリまでアクセスできなくなるという始末。
GitHubへの匿名アクセスは_1時間に60回_という制限があり、どうやらこれを超えてしまったようです。

対処としてGitHubアカウントを作成し、ログイン後次のURLにアクセスしてトークンを生成します。

https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+<servername>+2015-06-26+0933

このトラブルは以下を見て対処しました。
有用な情報をありがとうございました。

A Day in Serenity (Reloaded)
tokenを聞かれFuelPHP 1.7.3がうまくインストールできない場合
http://blog.a-way-out.net/blog/2015/06/26/fuelphp-1-7-3-installation-trouble/


2015年12月19日:プロジェクト作成コマンドを修正し「 –prefer-dist」をカット。いつの間に変わったのでしょうか。
2015年12月17日:タイトルを「ちょっとだけ」変更