ウェブ職人のためのPHPフレームワーク という触れ込みで注目を集めた Laravel

この記事では Laravel の紹介と、Mac 環境への導入についてまとめます。

Laravel

公式サイト

Laravel オフィシャルサイト
Laravel オフィシャルサイト
Laravel
https://laravel.com/

Laravel とは

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

MVC 関連の機能はもちろん ファサード(Facade) などの機能を多数搭載しながらも、実プロジェクトで使えるフレームワークに仕上がっています。

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

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

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

バージョン

2018 年 4 月現在の最新バージョンは 5.6 、LTS バージョンは 5.5 です。

当記事では 長期サポートのある 5.5 を選択いたします。


動作要件となる PHP バージョン、PHP 拡張は次のとおりです。

PHP バージョン

Laravel PHP
5.5 LTS 7.0.0 以上
5.6 LTS 7.1.3 以上

PHP 拡張

  • OpenSSL PHP 拡張
  • PDO PHP 拡張
  • Mbstring PHP拡張
  • Tokenizer PHP拡張
  • XML PHP拡張

Laravel 5.6 は更に次が必要です。

  • Ctype PHP 拡張
  • JSON PHP 拡張

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

公式サイトのヘッダーメニューからドキュメントを確認できます。バージョンに注意してください。

Laravel 5.5 ドキュメント
https://laravel.com/docs/5.5

ドキュメントの日本語で読みたい方は次をどうぞ。

Laravel ドキュメント 日本語サイト
https://readouble.com/laravel/

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

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

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

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


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

Laravel Homestead
https://laravel.com/docs/5.5/homestead

事前準備

PHP のバージョンアップ

ターミナルを起動し $ php -v を打って PHP バージョンを確認します。

Laravel 5.5 では PHP 7.0 以上が必須のため、必要に応じてバージョンアップを行います。

詳細は次記事をご覧ください。

PHPBrew でかんたんに PHP 環境を管理する
MacにPHPBrewを導入してPHPの切り替えができるようにしてみました。
Atuweb 開発 Log

Composer

Composer とは

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

composer.json ファイルに必要なライブラリを定義してコマンドを実行するだけで各種ライブラリをダウンロード、オートロードまでしてくれます。

最近は当たり前に Composer が利用されるため、不案内な方は触っておくと良いですよ。

Composer のインストール

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

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

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

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

インストール後 Composer をパスが通っているディレクトリに移動します。

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

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

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

Laravel インストーラー

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

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

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

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

プロジェクト作成

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

  • laravel new
  • Composer Create-Project

Composer でプロジェクトを生成する

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

1$ cd /path/to/project/
2$ composer create-project laravel/laravel MyProject 5.5

これだけでプロジェクトの準備は完了です。
簡単ですね !

以前は composer install を手で行う必要がありましたが、上記コマンド内で実行されるように変わっていました。
vendor 以下は触らない

vendor ディレクトリ以下に大量のファイルが生成されています。

vendor ディレクトリは Composer が管理するため「自分では手を入れない」 というルールを覚えておいてください。

不要なファイルの削除

プロジェクトの生成直後、ログイン用のクラスがいくつかあり、不要であれば削除してしまいましょう。

過去バージョンには `artisan fresh` という削除用のコマンドがありましたが、今は使えなくなってしまいました。 手で削除すれということか。。。 #### テストサーバを起動 Laravel に搭載されているサーバオプションでテストサーバを起動します。 次のコマンドを実行してください。 ``` $ cd /path/to/project/MyProject $ php artisan serv Laravel development server started: ``` ブラウザで `http://localhost:8000` にアクセスし、ウェルカムページが表示されれば OK です。
Laravel ウェルカムページ
Laravel ウェルカムページ
テストサーバを停止する場合は `control + c` を押してください。 また、ポートは `--port=8888` のように指定できます。 ### プロジェクトの設定について #### パーミッション クイックスタートに従って storage と vendor ディレクトリ に書き込みアクセスを設定してください。 ``` $ chmod 777 storage $ chmod 777 vendor ``` #### .env 開発環境のセットアップに `.env` ファイルを編集します。 Composer コマンドからプロジェクトを生成した場合は `.env` ファイルが生成済みです。 ``` APP_ENV=local APP_DEBUG=true APP_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ``` `.env` ファイルはデフォルトの定義を上書きするもので、データベース接続先などもこのファイルに定義します。 またドキュメントに記載がある通り `.gitignore` に `.env` を追加してコミットされないようにしておきます。 Composer から生成した場合は、こちらも設定済みです。 #### 名前空間の変更 初期状態では「App」という名前空間が設定されています。 コマンド1つで変更できますので、必要に応じて変更してください。 ``` $ php artisan app:name MyGreatApp ``` #### app.php アプリケーションの基本動作は `config/app.php` で定義します。 URL やロケールを設定してサーバを起動してみましょう。 ``` 'url' => 'http://localhost:8080/', 'locale' => 'ja', ``` ## トラブル事例 ### 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++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/ ***