2. Laravelの準備

最初に開発環境へ真新しくLaravelをインストールしてください。Webサーバーの設定(ドキュメントルートをpublicフォルダーへ設定…なんたらかんたら)は当面不要です。

続いて、Laravelの準備を行いましょう。しばらくターミナル(端末、Windowsであればコマンドプロンプトやパワーシェルなどのコンソールプログラム)での作業になります。

コンパイル済みクラスファイルの削除

プロジェクトを実働環境で動かしているなら、Laravelが生成するコンパイル済みクラスファイルは動作スピードアップに役立ちます。しかし、開発環境ではエラーがどこで発生しているのかを追いかける邪魔になりますので、削除しておきましょう。以下のコマンドを実行してください。

$ php artisan clear-compiled

日本語化

Laravelでは設定ファイルのコメントもドキュメントと考えています。コメントは英語で書かれています。しかし英語が苦手な方もいらっしゃるので翻訳コマンドを用意してあります。日本語のja言語ファイルも同時に作成します。

コメントが全部英語でも平気な方は、この手順をスキップしてください。

GitHubのlaravel-ja/comja5リポジトリーで公開しています。comja5コマンドを提供しています。このコマンドはインストール済みのLaravelに含まれるファイル中の、英文コメントなどを日本語へ文字列置換します。ですから、Laravelプロジェクトを新たにインストールした直後に実行してください。開発が進んでから翻訳実行すると、開発した部分に含まれる英文が意図せず日本語へ置き換えられる可能性があります。

comja5コマンドはプロジェクトごとに導入することもできますが、composerのグローバルコマンドとしてインストールすると、使い勝手が良いでしょう。

$ composer global require laravel-ja/comja5

インストールが終わったら、以下のディレクトリーへ実行パスを設定してください。

LinuxとMacの場合:
~/.composer/vender/bin

Windows10の場合:
C:¥Users¥<ユーザー名>¥AppDate¥Roaming¥Composer¥vendor¥bin

これでcomja5コマンドが実行できるようになりました。Laravelのプロジェクトディレクトリーで以下のコマンドを実行すれば、コメントの翻訳し、日本語の言語ファイルを生成します。

comja5 -a

生成される日本語はUTF8、行末はUnix/Linux形式です。Windowsでも大抵のエディターでは対応しているので通常問題はありません。

.envファイル

機密性が高い認証情報や、動作環境により設定ファイル中の値を変更したいものは、.envファイルに記述します。もし.envファイルが存在していなければ、.env.exampleファイルをコピーしてください。本書で提供するコードのZIPファイルに含まれている.env.exampleにはコメントを含めています。それを.envにコピーすると変更箇所がわかりやすくなります。

続いて以下を参考にし、ファイルを編集します。

APP_ENV=local
APP_DEBUG=true
APP_KEY=K2NsYNDi938WYvVGgOLZk7Gp7BO9rCjP
(上記の値は各自の環境により異なります)

...
(省略、ここまで変更しない)
...

MAIL_DRIVER=smtp
MAIL_HOST=smtpサービスのドメイン
MAIL_PORT=上記のポート
MAIL_USERNAME=メールのユーザ名
MAIL_PASSWORD=メールのパスワード

APP_KEYにランダムな文字列が設定されておらず、代わりに”SomeRandomString”という文字列が設定されていれば、一度エディターを終了させ、次のコマンドで設定してください。

$ php artisan key:generate

メールを送信できるように、SMTP関連の設定を行っておきましょう。最初の通知機能はメール送信の実装です。なにせメールも重要な「Webサービス」です。後ほど連携に利用します。

例えばGmailを利用する場合は、以下のようになります。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=ユーザ名@gmail.com
MAIL_PASSWORD=パスワード

データベース設定

今回、システムの情報を保存する目的には直接データベースを使用しません。しかし、Laravel5.0から新しく導入されたデータベースによるキューを後ほど試してみます。そのためデータベースの準備が必要です。.envファイルやconfig/database.php設定ファイルを変更し、必要な接続情報などを指定してください。

データベースエンジンにSQLiteを使用する場合は、database.phpに指定したファイルを予め作成しておく必要があります。デフォルトのまま使用するのであれば、storage/database.sqliteです。サイズは0バイト、つまり空のファイルにしておきます。touchコマンドで簡単に作成できます。

$ touch database/database.sqlite

メール設定

メールの設定ファイルも変更しておきましょう。config/mail.phpをエディターで開きます。

ほとんどの設定は.envの編集で済ませました。変更する必要があるのは一行だけです。メールアドレスのバリデーションが行われるため、logドライバーを使用する場合も、メールアドレスとして正しい値を指定してください。

...
'from' => ['address' => '自分のメールアドレス', 'name' => '送信者名'],
...

メール送信ができるか、テストしておきましょう。app/Http/routes.phpをエディターで開きます。ルートURLに対する定義、Route::get('/', 'WelcomeController@index');の一行を次のように変更します。

Route::get('/', function () {
    \Mail::raw('本日は晴天なり', function ($message) {
        $message->to('送信先メールアドレス')
            ->subject('テスト送信');
    });

    return '送信しました。';
});

toメソッドには、実際の送信先メールアドレスを指定してください。

php artisan serveでPHPサーバーを起動し、’localhost:8000’へブラウザからアクセスし、メールが送信されるか確認しましょう。送信できない場合は、設定値を見直してください。

Mail::row()メソッドはビューを使用せず、文字列をそのままメールの本文として送信します。

アプリケーションの設定

アプリケーションの設定はconfig/app.phpファイルで行います。以下の2項目を設定してください。(記述していない項目は変更しません。)

'timezone' => 'Asia/Tokyo',
'locale' => 'ja',

Laravelがコアでも使用し、本書でも活用している日付時間操作ライブラリーのCarbonでも、新しいインスタンスを生成した場合のデフォルトタイムゾーンはここで指定した’timezone’設定値になります。Laravelが初期処理で、PHPの日付時間関数のデフォルトタイムゾーンをこの設定値で指定するためです。