Laravel インストールからプロジェクト作成まで+VSCodeの便利な拡張機能

## 概要

9か月ぶりに現場に復帰するためLaravelを使用し、基礎勉強をし直したので
基礎的なことですが備忘録として残したいと思います。
なお今回はWindowsで作業を行っているので、書いている内容はWindowsの使用を前提としています

## Laravelインストール

Laravelをインストールする前に下記をインストールする必要があります
Docker Desktop　　Windows Subsystem for Linux 2（WSL2）
インストール完了後Docker Desktopを起動し下記コマンド実行

`curl -s "https://laravel.build/[ファイル名]" | bash`

プロジェクトを作成したらプロジェクトフォルダに移動して`./vendor/bin/sail up`を実行
実行したらlocalhostへアクセスできます

sailコマンドに関しては下記urlを参照いたしましたので参考までに...
(https://readouble.com/laravel/9.x/ja/sail.html)

## artisanコマンド

Laravelでよく使用する`artisan`その中でもいくつかピックして書き残します

### php artisan list
　困ったときはこちらでartisanのコマンド一覧がみれます

### php artisan help　[コマンド]
　コマンドの利用方法やオプションがわかります

```ruby:例
php artisan help make:controller
Description:
  Create a new controller class

Usage:
  make:controller [options] [--] <name>

Arguments:
  name                   The name of the class

Options:
      --api              Exclude the create and edit methods from the controller 
      --type=TYPE        Manually specify the controller stub file to use        
      --force            Create the class even if the controller already exists  
  -i, --invokable        Generate a single method, invokable controller class    
  -m, --model[=MODEL]    Generate a resource controller for the given model      
  -p, --parent[=PARENT]  Generate a nested resource controller class
  -r, --resource         Generate a resource controller class
  -R, --requests         Generate FormRequest classes for store and update       
  -s, --singleton        Generate a singleton resource controller class
      --creatable        Indicate that a singleton resource should be creatable  
      --test             Generate an accompanying PHPUnit test for the Controller      --pest             Generate an accompanying Pest test for the Controller   
  -h, --help             Display help for the given command. When no command is given display help for the list command
  -q, --quiet            Do not output any message
  -V, --version          Display this application version
      --ansi|--no-ansi   Force (or disable --no-ansi) ANSI output
  -n, --no-interaction   Do not ask any interactive question
      --env[=ENV]        The environment the command should run under
  -v|vv|vvv, --verbose   Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
```

### php artisan make:controller [コントローラ名]
コントローラ作成

### php artisan make:model [モデル名]
モデル作成
オプションに`-mc`をつけてコントローラとマイグレーションファイルを
一括で作れます

### php artisan make:request　[リクエスト名]
リクエスト作成


### php artisan breeze:install
ログイン認証画面を作成する

Composer経由でLaravel Breezeのパッケージをインストール
`composer require laravel/breeze --dev`
`php artisan breeze:install`
マイグレーション実行
`php artisan migrate`

上記実行後127.0.0.1の画面の右上にloginとRegisterが追加されます

### php artisan route:list
ルーティング確認

### php artisan cache:clear
キャッシュのクリア

### マイグレーション
　`php artisan make:migration create_flights_table`　マイグレーションファイルの作成
　`php artisan migrate`　マイグレーション実行
　`php artisan migrate:status`　マイグレーションの実行状況の確認
　`php artisan migrate:rollback --step=3`　ロールバック、左でいうと最後から3つのマイグレーションを戻す
　`php artisan migrate:reset`　すべてのマイグレーションをロールバックする


### まとめ

基本的に困ったら`list` `help`で調べて必要に応じでオプションを追加し実行していくかと思います


ついでに、今回調べているうちにvscodeの拡張機能にて便利そうなのがあったので追記します。

拡張機能名は`Laravel Artisan`とそのままです。
インストールしたあと`Ctrl ＋ Shift ＋ P`又は`F1`　でコマンド一覧を表示、その後`artisan`で検索すると下記のようにコマンド一覧が表示されます。

メリットとしては、コマンド一覧をすぐ見れる、ターミナルを開かなくても実行できる、普段使いするものはショートカットキーを設定すれば楽に使用できる、でしょうか

コマンド入力に慣れていない人や、artisanコマンドに慣れて機能を把握したうえで、楽してコマンド打ちたいなどであれば、使用すればいい感じかなと思っています


![artisan.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2997294/93f8b564-7505-98e7-6dee-0ef38e4b70e3.png)


## vscode拡張機能

Laravel用の拡張機能をいくつか使ってみて、実際役に立ちそうなものがいくつかあったので上げておきます

### Laravel Blade Snippets
　　Bladeファイルにて自動補完してくれたり、整形してくれます
　　　自動補完　例 `b:if-else`でif else文を自動補完します

　　　整形機能　設定画面の拡張機能の項目からEnable format blade fileを探しチェックを入れる
　　　　　　　　成形したいbladeファイルで　「Shift」+「Alt」+「F」を押すと整形してくれる

### Laravel goto Controller
 参照元のコントローラにアクセスできるようになります
　　`ctrl + 左クリック`で対象のコントローラへ移動できます

### Laravel goto View
　参照物とviweファイルにアクセスできるようになります
　　`ctrl + クリック`で対象のviweファイルへ移動できます
　コントローラは定義移動でも飛べるのでViweファイルに飛べるのは結構楽になるかと

### Laravel Blade Spacer

Bladeファイルにて以下のタグを記述する際、自動でスペースを入れて使いやすくしてくれます
　{{ }}
　{!! !!}
　{{– –}}

### まとめ

今までphpの拡張機能はいくつか入れてコードを書いていましたが、今回基礎をやり直す際、せっかくだからLaravel関係の拡張機能を実際に使ってみて、使いこなせれば便利だなと思ったものを上げてみました。まだまだ、たくさんの機能があるので、使用してみて必要であればどんどん取り入れたいと思っております。

## 最後に

実際に基礎から学びなおして、まだまだ学べることはあるなと実感いたしました。
これからはコードをがりがり書いていくと思うので、その都度引っかかった事や新しい発見、便利なツールなどあれば、共有していきたいと思います