Laravelについてのメモ

## 概要

Laravel5.4を使う上で、調べた内容を忘れないようにメモしておく

## バージョン確認

```
$ php artisan --version
Laravel Framework 5.4.33
```

## 手動で環境ファイルを作る場合

```
$ cp .env.example .env
$ php artisan key:generate
```

## 現在の環境を確認

```
$ php artisan env
Current application environment: local
```

## アプリケーションキーを生成

アプリケーションキーは暗号化の際に利用されるランダムな英数字32文字です。
※ 変更されると復号化に影響が出るので、運用(キーが設置された)後には実行NG

```
$ php artisan key:generate
```

## ルート一覧を確認

```
$ php artisan route:list
+--------+----------+-------------------------+------+-----------------------------------------------------------------+------------+
| Domain | Method   | URI                     | Name | Action                                                          | Middleware |
+--------+----------+-------------------------+------+-----------------------------------------------------------------+------------+
|        | GET|HEAD | /                       |      | Closure                                                         |            |
|        | GET|HEAD | home                    |      | App\Http\Controllers\HomeController@index                       | web,auth   |
|        | GET|HEAD | login                   |      | App\Http\Controllers\Auth\AuthController@showLoginForm          | web,guest  |
|        | POST     | login                   |      | App\Http\Controllers\Auth\AuthController@login                  | web,guest  |
|        | GET|HEAD | logout                  |      | App\Http\Controllers\Auth\AuthController@logout                 | web        |
|        | POST     | password/email          |      | App\Http\Controllers\Auth\PasswordController@sendResetLinkEmail | web,guest  |
|        | POST     | password/reset          |      | App\Http\Controllers\Auth\PasswordController@reset              | web,guest  |
|        | GET|HEAD | password/reset/{token?} |      | App\Http\Controllers\Auth\PasswordController@showResetForm      | web,guest  |
|        | GET|HEAD | register                |      | App\Http\Controllers\Auth\AuthController@showRegistrationForm   | web,guest  |
|        | POST     | register                |      | App\Http\Controllers\Auth\AuthController@register               | web,guest  |
+--------+----------+-------------------------+------+-----------------------------------------------------------------+------------+
```

## キャッシュ関連の各コマンンド

```
$ php artisan optimize
$ php artisan cache:clear
$ php artisan route:cache
$ php artisan view:clear
$ php artisan config:cache
$ php artisan config:clear
$ composer dump-autoload
```

## コンパイル済みコアファイルの削除

```sh
# 常に削除
$ php artisan clear-compiled

# デバッグモードがtrue時に削除
$ php artisan optimize
```

## ルート定義の一覧を確認

下記オプションで絞り込み可能

- 名前(--name)
- URL(--path)

```
$ php artisan route:list
+--------+----------+----------+------+---------+--------------+
| Domain | Method   | URI      | Name | Action  | Middleware   |
+--------+----------+----------+------+---------+--------------+
|        | GET|HEAD | /        |      | Closure | web          |
|        | GET|HEAD | api/user |      | Closure | api,auth:api |
|        | GET|HEAD | foo      |      | Closure | web          |

$ php artisan route:list --path api
+--------+----------+----------+------+---------+--------------+
| Domain | Method   | URI      | Name | Action  | Middleware   |
+--------+----------+----------+------+---------+--------------+
|        | GET|HEAD | api/user |      | Closure | api,auth:api |
+--------+----------+----------+------+---------+--------------+
```

## マイグレーション実行

```sh
# 実行
$ php artisan migrate

# ロールバック
$ php artisan migrate:rollback
```

SQLiteをデータベースとして使う場合は、データベースファイルを作成してください。

```
$ touch storage/database.sqlite
```

## マイグレーションを作成する

```
$ php artisan migrate:make {任意のクラス名}
```

## シーダーを使ってテストデータを流し込む

```sh
# クラスを作成する
$ php artisan make:seeder {任意}Seeder

# Seed実行
$ php artisan db:seed
```

## テーブルを全てロールバックし、作り直す

```
$ php artisan migrate:refresh
$ php artisan migrate:refresh --seed
```

## SESSION用のテーブルをDBに作成する

「./database/migrations/****_create_sessions_table.php」ファイルが作成され、
「session」テーブルがデータベースに作成される

```
$ php artisan session:table
$ php artisan migrate
```

migrateファイルが無いのにIncludeしようとしてエラーになる場合、下記コマンドで掃除する

```
$ php composer.phar dump-autoload
$ php artisan migrate:reset
```


## 参考サイト

- [デプロイ時の最適化](http://qiita.com/qiita-kurara/items/d37dbc5b67e6b6dfbe1d)
- [Laravel学習手帳 - 命名規則について](http://laraweb.net/knowledge/942/)
- [Laravelでシーダーを使う](http://qiita.com/shosho/items/b69db263a494edfe3b21)
- [Laravelでのマイグレーション作成手順](http://qiita.com/Thiru0000/items/83964c6ff8d8fecc4cfe)
- [Laravelで、JSやCSSを更新した際にちゃんと反映されるようにする](http://www.sd-milieu.net/blog/484)
- [Laravel キャッシュクリア系コマンドなど](http://qiita.com/Ping/items/10ada8d069e13d729701)
- [Laravel デプロイ時の最適化](https://qiita.com/qiita-kurara/items/d37dbc5b67e6b6dfbe1d)