MacをCatalinaにアップグレードしてからローカルのPHPで以下のエラーが出てしまう。

Class 'ZipArchive' not found in ...


PhpSpreadsheetを使ってExcelのデータをAPI経由で各システムに登録するツールをMacのローカルで動かしていたんだけど、Catalinaにアップグレードしてからこのエラーで全く動かず。
まずPhpSpreadsheetは動作環境としてZipArchive classが必要だが、アップグレード後はインストールされていない。
色々ググったけど、いまいち見つからなかった。

で、対応方法は簡単だった。
足りないツールとPHPを最新にすること。

コンソールを立ち上げて、

足りないツールを以下のコマンドでインストールする。

xcode-select --install

次に、最新のPHPをインストールするとZipArchiveも一緒に自動インストールされる。
更新前のPHPは7.3.8でこの記事を書いてるときは7.3.10が最新。(2019/10/18時点)



brew update

brew install php@7.3

brew link php@7.3

最後に、コンソールを一度閉じて再度起動して完了。
一応、

php -vでバージョンが上がっていることを確認する。

php -v

PHP 7.3.10 (cli) (built: Sep 30 2019 19:59:57) ( NTS )

Copyright (c) 1997-2018 The PHP Group

Zend Engine v3.3.10, Copyright (c) 1998-2018 Zend Technologies

    with Zend OPcache v7.3.10, Copyright (c) 1999-2018, by Zend Technologies


あーよかった。

しかし最新のMac OSであるCatalinaは不具合が多い。
Sidecarはいいんだけど、メモや写真がiPhoneともうまく同期されなくなったり、Mac mini だとHDMIからディスプレイが表示されなくなったりと。