第3回 Laravelのインストールと初期設定

第3回 準備

この記事について

チュートリアルを始める前に、便利なパッケージを入れたり、一部ディレクトリ構成を変えますので、その手順を書きます。

やること

  1. Laravel のインストール
  2. 追加パッケージのインストール 開発に役立つパッケージをインストールしておきます
  3. コンフィグの編集 タイムゾーンとロケールの設定を変えます
  4. artisan make:auth 認証用のルーティングとページをつくっておきます
  5. Models ディレクトリの作成 app 直下にあるファイルを Models ディレクトリへ移動します

環境

最も手早く動作確認までできるので、ローカルで開発していきます。

php, composer, mysql, npm がインストールされていることが前提ですが、なければ、Vagrant(Homestead)や Docker(Laradock)を使ってもいいでしょう。

いまから環境を新しくつくるなら、Laradock がいいでしょう。以下の詳しいドキュメントがあります。

http://laradock.io

特に明記しませんが、Git を使うのを推奨します。

各ステップごとにコミットしておくといいでしょう。

このチュートリアルで使うコードは、以下の GitHub リポジトリにおいてあります。参考にしてください。

https://github.com/nunulk/laravel-tutorial-app

1. Laravel のインストール

$ composer create-project --prefer-dist laravel/laravel laravel-tutorial

2. 追加パッケージのインストール

barryvdh/debugbar

開発時に、実行された SQL や発生した例外などが見られる便利なサブウィンドウが表示されるようになります。

開発時のみ使うので、--dev オプションを追加しています。

$ composer require --dev "barryvdh/laravel-debugbar"

config/app.php にクラスを追加します。

providers

    'providers' => [
        // (snip)
        /*
         * Package Service Providers...
         */
        Laravel\Tinker\TinkerServiceProvider::class,
+       Barryvdh\Debugbar\ServiceProvider::class,

alias

    'aliases' => [
        // (snip)
        'View' => Illuminate\Support\Facades\View::class,
+       'Debugbar' => Barryvdh\Debugbar\Facade::class,
    ],

storage/debugbar を git 管理下から除外します。

.gitignore

 /storage/*.key
+/storage/debugbar
 /vendor

laravelcollective/html

debugbar と同様にインストールします。

$ composer require "laravelcollective/html"

続いて config/app.php の providers, aliases に追加します。

providers

    'providers' => [
        // (snip)
        /*
         * Package Service Providers...
         */
        Laravel\Tinker\TinkerServiceProvider::class,
        Barryvdh\Debugbar\ServiceProvider::class,
+       Collective\Html\HtmlServiceProvider::class,

alias

    'aliases' => [
        // (snip)
        'View' => Illuminate\Support\Facades\View::class,
        'Debugbar' => Barryvdh\Debugbar\Facade::class,
+       'Form' => Collective\Html\FormFacade::class,
+       'Html' => Collective\Html\HtmlFacade::class,
    ],

3. コンフィグの編集

続いて、タイムゾーンとロケールを変更します(日本で、日本語を使う、という前提ですが、異なる場合は別途変更してください)。

サポートされているタイムゾーンの一覧は以下にありますのでご参考まで。 http://php.net/manual/ja/timezones.php

config/app.php

// (snip)
-    'timezone' => 'UTC',
+    'timezone' => 'Asia/Tokyo',
// (snip)
-    'locale' => 'en',
+    'locale' => 'ja',

4. artisan make:auth

認証用のルーティングとページをつくっておきます。このコマンドを実行すると、ログインページやユーザー登録ページの他に、app/resources/views/layouts/app.php というレイアウトファイル(共通で使うヘッダーやフッターが記述されたテンプレート)が生成されるので、以降はこのファイルを拡張していくようにします。

$ php artisan make:auth
Authentication scaffolding generated successfully.

5. Models ディレクトリの作成

デフォルトで、app/User.php というファイルがありますが、デフォルトのままで使うと、app の下にファイルがずらっと並んでしまい、見づらくなってしまうので、Models というディレクトリをつくって、そちらに置くようにします。

$ mkdir app/Models
$ git mv app/User.php app/Models

名前空間を変更します。

app/Models/User.php

 <?php

-namespace App;
+namespace App\Models;

User クラスを参照しているファイルがあるので修正します。

app/auth.php

-            'model' => App\User::class,
+            'model' => App\Models\User::class,

app/Http/Controllers/Auth/RegisterController.php

以下の2箇所です。

namespace App\Http\Controllers\Auth;

-use App\User;
+use App\Models\User;

// (snip)

      * Create a new user instance after a valid registration.
      *
      * @param  array  $data
-     * @return \App\User
+     * @return \App\Models\User
      */

6. マイグレーション

最後に、ユーザー登録ができることを確認するために、データベースを初期化します。

MySQL に以下の要領でデータベースをつくります。

mysql> create database laravel_tutorial_app default charset utf8mb4 collate utf8mb4_general_ci;
Query OK, 1 row affected (0.00 sec)

.env を編集します。

DB_DATABASE=laravel_tutorial_app
DB_USERNAME=root
DB_PASSWORD=

続いてマイグレーションを実行します。

$ php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table

終わりに

これで準備は完了です。

次回から、サンプルアプリケーションの作成に入ります。

Posted in Install on 8月 13, 2017