macにPHP8.1をインストールする。

おおお！！めっちゃ構文エラー出してますやん
なんで、みんな気づかないんだろう。

**「いや、自分のPHPのversionが古いだけじゃん」**

# アップデート方法

## 結論

まずインストールしてリンクさせます。

````
$ brew install php@8.1 && brew link --force php@8.1
````

しかし、これではバージョンは変わりません。

````
$php -v
PHP 8.0.15 (cli) (built: Jan 21 2022 04:47:57) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.15, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.15, Copyright (c), by Zend Technologies
````

そこでパスを通します。

````
$ echo 'export PATH="/usr/local/opt/php@8.1/bin:$PATH"' >> ~/.zshrc 
$ echo 'export PATH="/usr/local/opt/php@8.1/sbin:$PATH"' >> ~/.zshrc
````

.zshrcを開いて確認します。（ここで書いてもおkです）

````
$ vi ~/.zshrc    
````

しっかりパスが記述されていることを確認したら、反映させます。

````
$ source ~/.zshrc
````

これでバージョンが更新されています。

````
$php -v
PHP 8.1.2 (cli) (built: Jan 21 2022 04:47:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies
````

## VS Code側でもバージョンをアップグレードさせます
![スクリーンショット 2022-02-19 10.57.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455403/fb52bacd-5d74-d64a-0c57-3a1ee1f8ab2b.png)
設定から、 `Environment: PHP Version`を検索すれば、バージョンを記載する箇所が出てきます。
こちらを反映させましょう。

これで大丈夫です。
PHP8.1の記述豊富が利用可能になります。

なお、setting.jsonからもPHPのバージョンを設定することができます。

![スクリーンショット 2022-02-19 11.00.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455403/84867703-ce20-f97f-c2cc-995a197d5ff8.png)

先ほど変更した`Intelephense › Environment: PHP Version`が反映さrて、
`"intelephense.environment.phpVersion": "8.1.2",`と記載されていますね。


![スクリーンショット 2022-02-19 11.03.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455403/a945744c-881e-1893-b6a3-937115437c74.png)


## 悪戦苦闘した

````
$ brew search php@8.1 
==> Formulae
php@8.1                               php@8.0 ✔                             php@7.4 ✔                             php@7.3                               php@7.2
````
でバージョンがあることを確認

自分の場合、php@8.0とphp@7.4を入れています。
ですが、これだとphp@8.1の書き方はエラーとみなされます。

こちらなど利用することができません
https://www.php.net/manual/ja/unitenum.cases.php

````
$ brew install php@8.1
````

ということで、早速インストールしていきます。

````
$brew unlink php@8.0
Unlinking /usr/local/Cellar/php@8.0/8.0.15... 0 symlinks removed.
````
インストールできたので、php@8.0は解除します。

````
$brew link php@8.1  
Warning: Already linked: /usr/local/Cellar/php/8.1.2
To relink, run:
  brew unlink php && brew link php
````
そして、新たにphp@8.1 を紐付けましいた。

````
$brew unlink php && brew link php
Unlinking /usr/local/Cellar/php/8.1.2... 24 symlinks removed.
Linking /usr/local/Cellar/php/8.1.2... 24 symlinks created.
`````
念の為、指示通りに紐付けました。

```
$php -v
PHP 8.0.15 (cli) (built: Jan 21 2022 04:47:57) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.15, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.15, Copyright (c), by Zend Technologies
```

変わってないやないかーい。

````
$brew unlink php@8.0 && brew link --force php@8.1
Unlinking /usr/local/Cellar/php@8.0/8.0.15... 0 symlinks removed.
Warning: Already linked: /usr/local/Cellar/php/8.1.2
To relink, run:
  brew unlink php && brew link php
```

````
$php -v
PHP 8.0.15 (cli) (built: Jan 21 2022 04:47:57) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.15, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.15, Copyright (c), by Zend Technologies
````

パスを取り込みます。

````
$ echo 'export PATH="/usr/local/opt/php@8.1/bin:$PATH"' >> ~/.zshrc 
$ echo 'export PATH="/usr/local/opt/php@8.1/sbin:$PATH"' >> ~/.zshrc
````

.zshrcを開いて確認します。（ここで書いてもおkです）

````
$ vi ~/.zshrc    
````

しっかりパスが記述されていることを確認したら、反映させます。

````
$ source ~/.zshrc
````

これでバージョンが更新されています。

````
$php -v
PHP 8.1.2 (cli) (built: Jan 21 2022 04:47:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies
````