以前紹介した、Macで複数のバージョンのPHPを同時に使うのニューバージョンです。
複数のPHPバージョンを簡単に一度にインストールできる便利なHomebrewフォーミュラ「PHPComplete」を紹介します。
PHPCompleteとは?
PHPCompleteは、複数のPHPバージョンを一度にインストールできるHomebrewフォーミュラです。XDebugやその他のPECLパッケージも含まれています。
他との違い
phpenvと違いディレクトリ単位で切り替えたりすることや、`phpbrewのようなインストールツールではありません。
実体は単なるhomebrewフォーミュラです。shivammathur/phpで用意されている複数のPHPを一度にinstallします。グローバルなユーティリティなどなくクリーンです。
主な特徴
PHPだけでなく開発に必要なPECLも同時に複数バージョンのPHPにインストールされます。
-
複数のPHPバージョン: PHP 5.6から8.3まで一度にインストールされます。
-
XDebugの自動インストール: 各PHPバージョンに適したXDebugが自動的にインストールされます。特に古いバージョンのPHPのXdebugはバージョン番号指定が必要ですがその面倒が軽減されます。
-
追加のPECLパッケージ: PHP 8.1、8.2、8.3向けには以下のパッケージが含まれています:
- pcov (コードカバレッジドライバー)
- apcu (APCユーザーキャッシュ)
- redis (Redisクライアント)
- xhprof (階層的プロファイラー)
- imagick (画像処理ライブラリ)
- memcached (Memcachedクライアント)
-
柔軟なカスタマイズ: 必要なPHPバージョンやエクステンションを簡単にコメントアウトできます。例えば上記のpeclをPHP5.6からでもインストールできます。
使い方
-
タップしてフォーミュラをインストール:
brew tap koriym/brewworks brew install phpcomplete
-
インストール完了後、各PHPバージョンとエクステンションが使用可能になります。
カスタマイズと再インストール
PHPCompleteの素晴らしい点は、必要なPHPバージョンやPECLパッケージを柔軟に選択できることです。
-
フォーミュラを編集:
brew edit phpcomplete
-
必要なPHPバージョンやPECLパッケージを選択(または選択解除)します。
-
変更を反映するために再インストール:
brew reinstall phpcomplete
このように開発環境をコントロールできます。
アンインストール
アンインストールを行うと、このパッケージのみに依存しているPHPは全てアンインストールされます。
brew uninstall phpcollection
クリーンなPHPスイッチ
切り替えユーティリティを使わずPATH環境変数の値を変えるだけでphpを切り替えます。
alias php56='export PATH="/opt/homebrew/opt/php@5.6/bin:$PATH" && export PATH="/opt/homebrew/opt/php@5.6/sbin:$PATH"'
alias php70='export PATH="/opt/homebrew/opt/php@7.0/bin:$PATH" && export PATH="/opt/homebrew/opt/php@7.0/sbin:$PATH"'
alias php71='export PATH="/opt/homebrew/opt/php@7.1/bin:$PATH" && export PATH="/opt/homebrew/opt/php@7.1/sbin:$PATH"'
alias php72='export PATH="/opt/homebrew/opt/php@7.2/bin:$PATH" && export PATH="/opt/homebrew/opt/php@7.2/sbin:$PATH"'
alias php73='export PATH="/opt/homebrew/opt/php@7.3/bin:$PATH" && export PATH="/opt/homebrew/opt/php@7.3/sbin:$PATH"'
alias php74='export PATH="/opt/homebrew/opt/php@7.4/bin:$PATH" && export PATH="/opt/homebrew/opt/php@7.4/sbin:$PATH"'
alias php80='export PATH="/opt/homebrew/opt/php@8.0/bin:$PATH" && export PATH="/opt/homebrew/opt/php@8.0/sbin:$PATH"'
alias php81='export PATH="/opt/homebrew/opt/php@8.1/bin:$PATH" && export PATH="/opt/homebrew/opt/php@8.1/sbin:$PATH"'
alias php82='export PATH="/opt/homebrew/opt/php@8.2/bin:$PATH" && export PATH="/opt/homebrew/opt/php@8.2/sbin:$PATH"'
alias php83='export PATH="/opt/homebrew/opt/php@8.3/bin:$PATH" && export PATH="/opt/homebrew/opt/php@8.3/sbin:$PATH"'
~/.zshrc
などに以上のalias
を追加すると簡単に切り替えられます。
php81 # Switch to PHP 8.1
php74 # Switch to PHP 7.4
- シンプルで直感的: 簡単なコマンドでPHPのバージョンを素早く切り替えられます。
- 追加ツール不要: シェルの機能のみを使用するため、追加のソフトウェアは必要ありません。(brew updateで壊れることもありません!)
他にはターミナルのスクリプトを設定して、Windows単位で指定する方法もあります。
前述の以下の記事の「ターミナルで選択」をご覧ください。
リソース使用量について
切り替え
PHPCompleteを使用する際、リソース使用量について心配する必要はあまりありません:
- 各PHPバージョンは約80-100MBのディスク容量を使用します。
- インストールしたが使用していないPHPバージョンは、ディスク容量を占有するだけで、メモリやCPUには影響しません。
- そのため、使用頻度の低いバージョンをインストールしていても、システムパフォーマンスへの影響は最小限です。
あまり心配しないで、使わないバージョンがインストールされていてもまあいいのではないでしょうか。PHPコレクションとしてcompleteしましょう😃
まとめ
PHPCompleteは、複数のPHPバージョンを扱う開発者にとって便利なツールです。複数のPHP環境構築の時間を1コマンドでXdebug付きで(ここ重要)インストールする手間を大幅に削減し、異なるPHPバージョン間でのテストや開発を容易にします。カスタマイズが簡単で、リソース使用量も気にする必要がなく、ツールもインストールされません。
このフォーミュラでPHPを"コンプリート"してください!😆