laravelなどコマンド一覧【個人用メモ】

# 【プロジェクトの作成】
```php
 laravel new プロジェクト名
```

```php
$ composer create-project --prefer-dist laravel/laravel プロジェクト名 "5.8.*"
```
(最後はバージョン指定)

# 【ローカルサーバー起動】
```php
$ php artisan serve (--port=8080)
```

# 【Git Hub】
```git clone git@github.com:ユーザー名/リポジトリ名.git```
または
```git clone -b ブランチ名　https://github.com/ユーザー名/リポジトリ名.git```

ブランチ指定する場合
```git clone -b ブランチ名　git@github.com:ユーザー名/リポジトリ名.git```
または
```git clone  -b ブランチ名　https://github.com/ユーザー名/リポジトリ名.git```



# 【MySQL】
ログインコマンド
```$ mysql -u root```

起動コマンド
```$ sudo brew services start mysql```

# 【ルートの確認】
```php
$ php artisan route:list
```
# 【モデルの作成】
```php
$ php artisan make:model Admin
```
```php
$ php artisan make:model -m Admin
```
※-mオプションを追加することでマイグレーションファイルも生成されます。
**モデル名は単数形**で命名するのが慣例。テーブル名は複数形。

```php
$ php artisan make:model Models/Hoge
```
artisan コマンドでモデル名の前にパスを付与することで生成先のディレクトリを指定できます。

# 【バリデーション】
Form Request を生成します。

```php
$ php artisan make:request XXXXXRequest
```


# 【マイグレーションファイルの作成】
```php
$ php artisan make:migration create_XXXXXX_table
```
マイグレーション名は、作成されるマイグレーションのファイル名と、その中で定義されるクラス名で使用されます。
マイグレーション名を **create_テーブル名_table** と指定することで、
テーブル作成用のマイグレーションを生成してくれます。また**テーブル名は複数形**にするのが一般的です。


テーブルの変更を行うファイルを作成するには make:migrationに –table オプションを付けて実行します。

```php
$ php artisan make:migration add_追加カラム名_to_テーブル名_table --table=テーブル名
```

# 【マイグレーションの実行】
テーブルを作成します。

```php
$ php artisan migrate
```

ロールバック（直前に行った一連のマイグレーションをなかったことにする）
※down()メソッドに書かれた処理が実行されます。

```php
$ php artisan migrate:rollback
```

--stepのオプションで[数値]回のロールバックを行います。

```php
$ php artisan migrate:rollback --step=[数値]
```

すべてのマイグレーションをロールバックします。

```php
$ php artisan migrate:reset
```

すべてのマイグレーションをロールバックしてから再びマイグレーションします。

```php
$ php artisan migrate:refresh
```

すべてのテーブルをドロップ（削除）してから再びマイグレーションします。

```php
$ php artisan migrate:fresh
```


**まとめ**
・status　マイグレーションの状態確認
・rollback　直前のマイグレーションをロールバック
・reset　すべてのマイグレーションをロールバック
・refresh　すべてのマイグレーションをロールバックしmigrateを実行。
・fresh　すべてのテーブルを削除しmigrateを実行。

# 【Seederの作成】
Seederを作成します。実行に際しては、DatabaseSeeder.phpのrun()メソッドで明示する必要があります。

```php
$ php artisan make:seeder XXXXXTableSeeder
```

Seederを実行します。
オプションで**--class**を使えば特定のシーダーだけ実行される。

```php
$ php artisan db:seed
```

```php
$ php artisan db:seed --class=XXXXXTableSeeder
```

シーダーをマイグレーションごと巻き戻したいとき

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


# 【FACTORY(ダミーデータをつくときに使う。)】
Factory ファイルを作成します。

```php
$ php artisan make:factory XXXXXFactory
```


#【ルーティング】
ルートを確認することが出来ます。

```php
$ php artisan route:list
```

認証機能をartisan コマンドで view と route を生成します。

```php
$ php artisan make:auth
```


# 【コントローラー作成】
```php
$ php artisan make:controller XXXXXController
```

```php
$ php artisan make:controller HogeController --resource --model=Hoge
```
--resourceオプションを追加することで、RESTfulなアクションが自動的に追加されます。
また--modelで、作成されるコントローラーで使用するモデルを指定できます。

# 【キャッシュのクリア系】
```php
$ php artisan view:clear
$ php artisan cache:clear
$ php artisan config:clear
$ php artisan route:clear
$ php artisan clear-compiled
$ php artisan config:cache
$ composer dump-autoload
$ php artisan ide-helper:generate
$ php artisan ide-helper:models -N
$ php artisan ide-helper:meta
$ find . -name '._.DS_Store' -type f -ls -delete
```


# 【サービス使用時】
Servicesディレクトリを作成
```$ mkdir app/Services```

Serviceクラスと同様の手順で Facades ディレクトリを作成しましょう
```$ mkdir app/Facades```

Providerの作成。

```php
$ php artisan make:provider XXXXXServiceProvider
```

# 補足

[Laravel初期設定について【個人用メモ】]
(https://qiita.com/01hana/items/aec96f68c53451c91cab)