macにLaravelを導入

# はじめに
現在通っているプログラミングスクールTECH CAMPでは、Ruby on Railsを用いたアプリケーションの開発を行ってきました。スクールも終盤になり、新しいプログラミング言語、フレームワークを使用してみたいと思って今回「laravel」を導入してみました。

# PHPとLaravel
PHPとLaravelについては、現在、書籍やドキュメントで勉強中です。見聞きした範囲で書くとPHPはプログラミング言語の一つで、サーバーサイドで動的なウェブページを作成することが得意なので、Webアプリケーションに特化している、という感じ。
そしてLaravelは、PHPを使用して作成するWebアプリケーション用のフレームワークの一つ。PHPのフレームワークにはコレ!!という定番はまだなく、いくつか選択肢があるようです。Laravelは、他に比べて歴史は浅いものの人気のフレームワークの一つで、コードをスッキリ書けるらしい。Rubyに対してRails、PHPに対してLaravel、そういう認識です。

# 達成したいこと
Laravelで新しいプロジェクトを立ち上げ、ローカルから確認すると以下のようなトップ画像が表示されます。Railsで言うところの「Yay! You're on Rails!」に相当する画面です。このおしゃれな画面を表示させることを達成したい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614723/42a08bb7-fc9a-8588-c877-3cdd881772e2.png)

# 手順
プログラミングスクールに通っているので、「Homebrew」のインストールなどは完了しています。よって、あくまで私の環境での手順になりますが、以下のように進めます。

1. brewのバーション確認
2. Composerのインストール
3. PHPのインストール
4. Laravelのインストール
5. Laravelコマンドを利用するためにPATHを通す
6. Laravelプロジェクト用のディレクトリを作成
7. Laravelプロジェクトの新規作成
8. ローカルサーバーで確認

# 参考にさせていただいた記事
[Laravel公式ドキュメント](http://laravel.jp/)
[Mac用 Laravelをインストールする](https://qiita.com/S-Masakatsu/items/b231a8a02737aff6a808) @S-Masakatsu様
[Mac Laravelの環境構築時にエラーが出た話 vol.1] 
(https://qiita.com/miriwo/items/879f0f54be2d3a6bfa44) @miriwo様
[ターミナル上で「laravel」コマンドを使えるようにパスを通す](https://qiita.com/m24/items/970d9c575647f8f6ff33) @m24様

# brewのバーション確認
スクールのカリキュラムでHomebrewはすでにインストール済みですが、念のため確認を行いました。インストールできているか確認するのには、バーション確認のコマンドを打つのが定番のようですね。私の場合は、バージョンが表示されたのでOKということになりました。

```:ターミナル
$ brew -v
```

# Composerのインストール
ComposerはPHPのパッケージ管理ツールと呼ばれるもので、必要なライブラリを一括でインストールできるもののようです。RubyのライブラリはGemと呼ばれ、それらをまとめてインストールするためにBundlerを使用しました。ターミナルで「bundle install」したやつです。実際にBundlerとComposerでは挙動が異なるようですが、大まかな認識としてはそういったものになります。
つまり、Laravelでアプリケーション開発をするのに必須！というわけです。

```:ターミナル
$ brew install composer
```

正しくインストールが完了すれば、以下のコマンドでComposerのバージョン確認を行えます。

```:ターミナル
$ composer -v
```

# PHPのインストール
PHPはmacには標準で入っているので、この手順は飛ばしてLaravelをインストールしてもOKだとは思います。
しかし、私のmacに入っていたPHPのバージョンが古かったのか、Laravelをインストールしようとすると以下のようなエラーが発生しました。

```:ターミナル
こちらのエラー文はイメージです。実際のエラー文は残し忘れてしまいました。。。

$ composer global require laravel/installer
Changed current directory to /Users/shun/.composer
Using version ^3.0 for laravel/installer
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - laravel/installer v3.0.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - laravel/installer v3.0.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - Installation request for laravel/installer ^3.0 -> satisfiable by laravel/installer[v3.0.0, v3.0.1].

Installation failed, deleting ./composer.json.
```

そこで、参考記事を元にPHP7.4をインストールすることにしました。

```:ターミナル
$ brew install php@7.4
```

同じく正しくインストールされているか、バージョン確認を行っておきます。

```:ターミナル
$ php -v
```

# Laravelのインストール
本命であるLaravelをインストールします。

```:ターミナル
$ composer global require "laravel/installer"
```

同じくダウンロードできたかバージョン確認を行うとLaravelについては以下のように表示されてうまくバージョン確認ができません。

```:ターミナル
$ laravel -v
zsh: command not found: laravel
```

これは、Laravelコマンドを使用するためのPATHが通っていないことを表しているようです。ComposerやPHPと違って、インストールしただけでは動いてくれません。これまでバージョン確認はインストールが完了したかの確認という認識でしたが、コマンドが扱えるようになっているかの確認でもあったのですね。

# Laravelコマンドを利用するためにPATHを通す

PATHを通すのもターミナル操作となります。

```:ターミナル
$ export PATH=$HOME/.composer/vendor/bin:$PATH
```

上のようにターミナルに入力するだけで「.bash_profile」に書き込まれた状態になるようです。スクールでは、「vim -i」で直接編集する方法を学んでいましたが、ターミナルに打ち込むだけで完了するのは便利ですね。とはいえ変更状態を反映させるには以下のコマンドも必要になります。

```:ターミナル
$ source ~/.bash_profile
```

# Laravelプロジェクト用のディレクトリを作成
スクールでは、「Projects」というディレクトリにRailsアプリケーションを保存していました。そこでLaravelアプリケーション用のローカルディレクトリを作ります。これは人によってディレクトリの場所や名前は異なると思います。
私は、Userディレクトリ内に「laravel」という名前のディレクトリを作りました。

# Laravelプロジェクトの新規作成
Laravelアプリケーションを新規作成します。まずはアプリケーションの保存先へディレクトリを移動します。私の場合は、先ほど作成した「Laravel」ディレクトリへ移動します。

```:ターミナル
$ cd laravel
```

新規作成コマンドは、Railsとよく似ています。今回はオプション等は付けずに名前だけ付けます。laravel newに続けて任意のアプリケーション名を書きますが、今回は「sample_laravel」としました。

```:ターミナル
$ laravel new laravel_sample
```

# ローカルサーバーで確認
作成が完了したら、ローカルサーバーを起動してブラウザからトップ画面を確認します。ローカルサーバーの起動コマンドはRailsとは異なります。

```:ターミナル
$ php artisan serve
Laravel development server started: <http://127.0.0.1:8000>
```

ローカルサーバー起動時にターミナルに出力されているURL「http://127.0.0.1:8000」 にアクセスします。以下の画面が表示されれば成功です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614723/eced0c0b-eaf2-b6d4-8e7c-9c6502f5bb9e.png)

VSコードでもアプリケーションディレクトリを開くことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614723/f91feec4-ec54-e681-cdb9-9ad788266c3f.png)

# 次に達成したいこと
laravelの導入が完了したので、次はGit管理やPHPの記述が楽になりそうなVSコードのライブラリを探そうと思います。いつでもコードが書ける状態になったら本格的にPHPの勉強と開発に着手します。ここまで読んでいただきありがとうございました。