注:このソフトウェアが役に立った場合は、リポジトリにスターを付けてください。そうすることで、ソフトウェアが使用されていることがわかります。また、これは私が自由時間で作っているものなので、プロジェクトをサポートするためのスポンサーシップも検討してください。ありがとう!
PHP Monitor (またはphpmon ) は、Mac 上で実行され、アクティブな PHP バージョンをステータス バーに表示する軽量の macOS ユーティリティ アプリです。 Laravel Valet と緊密に統合されているため、アプリのすべての機能を使用したい場合はセットアップする必要があります (環境のセットアップ方法については、以下の FAQ を参照してください)。
スクリーンショット: PHP モニターの主要な機能を示しています。
PHP の異なるバージョンを切り替えるのは非常に便利です。通知も受け取ることができます (もちろん、オプトインを選択した場合のみ)。
PHP モニターを使用すると、さまざまな便利な機能 (構成ファイルへのアクセス、サービスの再起動など) に簡単にアクセスできます。
新しいドメインをリンクとして追加したり、サイトを分離したり、さまざまなサービスを管理したり、あらゆる種類の一般的な PHP リンクの問題を修正するための応急処置を実行したりすることもできます。
PHP Monitor は、Apple SiliconおよびIntel ベースの Mac 上でネイティブに実行されるユニバーサル アプリケーションです。
/usr/local/homebrew
または/opt/homebrew
) にインストールされます。php
式がインストールされていますPHP Monitor 6.0 以降では、PHP Monitor が動作するために Laravel Valet をインストールする必要はありません。ただし、PHP Monitor のすべての機能にアクセスするには、Valet をインストールすることをお勧めします。
詳細については、SECURITY.md を参照して、現在サポートされているアプリのバージョンを確認してください。
繰り返しになりますが、PHP Monitor のすべての機能にアクセスしたい場合は、最初にLaravel Valet をインストールすることをお勧めします。
composer global require laravel/valet
valet install
valet trust
現在、PHP Monitor は Laravel Valet v2、v3、および v4 と互換性があります。 Valet のこれらの各バージョンは、わずかに異なる PHP バージョンをサポートしているため、レガシー バージョンは引き続きサポートされます。サイト分離など、一部の機能は Valet の古いバージョンでは利用できないことに注意してください。
それが完了したら、最新リリースをダウンロードして解凍し、 /Applications
に配置できます。
バージョン 5.8 より前では、これが PHP Monitor のインストール方法として推奨されていました。
Homebrew 経由でアプリをインストールしたい場合は、次のコマンドを実行することもできます。
brew tap nicoverbruggen/homebrew-cask
brew install --cask phpmon
アプリを最新バージョンに更新する推奨方法は、組み込みのアップデーターを使用することです。
インターネット接続が非常に遅い場合、アップデーターはダウンロードがタイムアウトしたと報告することがあります。その場合は、最新リリースをダウンロードし、アプリを/Applications
に配置して手動で更新することをお勧めします。
(Homebrew を使用して PHP Monitor を更新することもできますが、その場合、更新がインストールされるたびにアプリを承認する必要があります。組み込みのアップデーターを使用する場合、これは必要ありません。)
選択したランチャーと統合したい場合は、PHP Monitor で動作する Alfred ワークフローまたは Raycast 拡張機能をダウンロードすることもできます。
これらが機能するには、アプリがバックグラウンドで実行されている必要があり、 [サードパーティ統合を許可する] チェックボックスが環境設定で有効になっている必要があります (デフォルトです)。
はい、アプリは署名され、公証されています。つまり、最初の起動 (または更新するたび) を承認するだけで済みます。
どのバージョンの PHP がリンクされているかを一目で確認でき、毎回ターミナルを操作することなく、簡単なアプリで Laravel Valet を処理できるようにしたいと考えていました。
当初、このために Alfred ワークフローを使用していましたが、現在はこのユーティリティに置き換えられています。このユーティリティは、現在の PHP バージョンやメモリ制限などの追加情報を一目で表示するのにも優れています。
ローカルの PHP セットアップをカスタマイズする必要がなく、コーディングを開始するための簡単ですぐに使える環境だけが必要な場合は、おそらく Laravel Herd で多くのユースケースに十分です。
より多くのカスタマイズと柔軟性が必要な場合は、PHP Monitor を Laravel Valet または Docker などの他のソリューション (Laravel Sail など) と組み合わせて検討することをお勧めします。
PHP モニターは、アプリの使用時に良好なエクスペリエンスを保証するために、いくつかの整合性チェックを実行します。 PHP モニターがさまざまなシナリオで正しく動作しないことを示すメッセージが表示されます。
問題を解決するには、アラートに指定されている指示に従ってください。
(これらのメッセージが表示されずにアプリが起動時にクラッシュする場合は、非標準の Homebrew と Valet がセットアップされている可能性があります。これらはサポートされていません。)
問題が発生した場合は、最初に最新バージョンの PHP MonitorとLaravel Valet をインストールする必要があります。これにより、さまざまな問題を解決できます。 Valet をアップグレードするには、
composer global update
を実行します。アップグレード後にvalet install
実行することを忘れないでください。
それでも問題が解決しない場合は、以下に一般的な質問と回答、および問題と解決策を示します。
すべての安定したサポートされている PHP バージョンは、PHP モニターでもサポートされています。ただし、インストールした Valet のバージョンに応じて、切り替え目的で利用できる PHP のバージョンが異なる場合があります。
注: PHP モニターで検出できるバージョンの PHP がインストールされているが、現在アクティブなバージョンの Valet ではサポートされていない場合は、メニュー内の感嘆符絵文字付きの項目によって警告が表示されます。 (
)
PHP Monitor のPHP バージョン マネージャー機能を介してインストール可能なバックポートは、このタップで利用できるかどうかに応じて異なります。
PHP Monitor のPHP Extension Manager機能を介してインストール可能な PHP 拡張機能は、このタップで利用できるかどうかに応じて異なります。
古い PHP バージョンとの互換性を最大限に高めるには、引き続き Valet 2 または 3 を使用することをお勧めします。詳細については、SECURITY.md を参照して、さまざまなバージョンの Valet でどの PHP のバージョンがサポートされているかを確認してください。
php
式がインストールされていると仮定すると、PHP の最新の安定バージョンがインストールされます。この記事の執筆時点では、これは PHP 8.3 です。
PHP Monitor のPHP Version Managerを介して、サポートされている他のバージョンの PHP をインストールできます。 (PHP バージョンを手動でインストールまたはアップグレードすることもできますが、これはお勧めしません。)
PHP バージョンのインストールまたは更新は、PHP Monitor のPHP バージョン マネージャーを介して実行された場合でも、他の必要な数式の依存関係 (PHP バージョンの機能を維持するために必要なソフトウェア) がアップグレードされる可能性があることに注意してください。これが発生した場合、あまり透過的ではないかもしれませんが、PHP バージョンのインストールに予想よりも時間がかかる場合は、これが原因である可能性があります。通常、他の依存関係もインストールされます。
さらに、PHP の特定のバージョンをアップグレードすると、そのバージョンの依存関係が PHP の他の (新しい) バージョンにも適用される場合、インストールされている他のバージョンの PHPも一度に更新される可能性があります。 Homebrew を使用して PHP のバージョンを管理するのは少し難しく、PHP Monitor でもいくつかの問題が発生する可能性があります。
奇妙なシナリオや誤動作が発生した場合は、問題トラッカーで問題を開いてご連絡ください。このプロセスを可能な限り確実なものにするために、今後も強化していきたいと考えています。
注: PHP バージョンを管理するときに PHP モニターを使用すると、コア タップ エイリアスとタップのエイリアスが異なるバージョンの PHP を参照しているときに、一時的なエイリアスの競合が発生する可能性があります。ただし、これは通常、新しい PHP バージョンの場合にのみ適用されるため、これは一般的には小さな不便です。リリースします。
macOS Ventura 以降を実行している場合は、[設定] メニューに [ログイン時に PHP モニターを開始する] を選択できるオプションがあります。
古いバージョンの macOS を使用している場合は、アカウントの[システム環境設定] > [ユーザーとグループ]にある[ログイン項目]セクションにPHP Monitor.app をドラッグすることでこれを行うことができます。
超便利!
サービスマネージャーは無効になり、他のすべての明らかな Laravel Valet 統合 (構成ファインダー、ドメインリスト、Fix My Valet) も無効になります。
(他のほとんどの機能は引き続き利用可能です。)
PHP モニターを使用してコンピューターを初めてセットアップする場合は、次の方法でセットアップします。
わかりやすいビデオチュートリアルも作成しました。端末コマンドだけが必要な場合は、読み続けてください。
まずHomebrewをインストールします。まずはそこにある指示に従ってください!
次に、PATH を設定する必要があります。
nano .zshrc
コメントに次の行が含まれていないことを確認してください。
# on an Intel Mac
export PATH=$HOME/bin:/usr/local/bin:$PATH
Apple Silicon ベースの Mac を使用している場合は、以下を追加する必要があります。
# on an M1 Mac
export PATH=$HOME/bin:/opt/homebrew/bin:$PATH
そして、以下を.zshrc
ファイルに追加しますが、これを自作の PATH 追加の前に追加します。
export PATH=$HOME/bin:~/.composer/vendor/bin:$PATH
composer
および Homebrew バイナリを追加する場合は、Homebrew バイナリを最後にパスに追加して、Homebrew バイナリが優先されるようにしてください。私のシステムでは、次のようになります。
export PATH=$HOME/bin:/usr/local/bin:$PATH
export PATH=$HOME/bin:~/.composer/vendor/bin:$PATH
export PATH=$HOME/bin:/opt/homebrew/bin:$PATH
Apple Silicon を使用していない場合は、3 行目を削除する必要があります。
php
とcomposer
式をインストールします。
brew install php composer
PHP が正しくリンクされていることを確認してください。
which php
/usr/local/bin/php
(Apple Silicon を使用している場合は/opt/homebrew/bin/php
) が返されるはずです。
Laravel Valet が必要ない場合は、ここで停止できます。 PHP モニターはスタンドアロン モードで次のように動作します。
Valet も使用したい場合は、次のように続行して Composer を使用して Valet をインストールします。
composer global require laravel/valet
最適な結果を得るには、グローバルな依存関係について PHP プラットフォームを、実行する予定の PHP の最も古いバージョンにロックする必要があります。そのバージョンが PHP 7.0 の場合、 ~/.composer/composer.json
ファイルは次のようになります (それに応じてバージョンを調整してください)。
{
"require": {
"laravel/valet": "^3.0",
},
"config": {
"platform": {
"php": "7.0"
}
}
}
composer global update
再度実行します。これにより、別のグローバル PHP バージョンに切り替えても、Valet が壊れることがなくなります。問題が発生した場合、PHP モニターはこれに対して何ができるかを通知します。
次に、Valet をインストールします。
valet install
これにより、 dnsmasq
がインストールされ、Valet がセットアップされます。すごいですね、もうすぐそこです!
valet trust
最後に、PHP モニターを実行します。アプリは公証されており、開発者 ID で署名されているため、機能するはずです。アプリの初回起動を承認する必要がありますが、今すぐ準備ができているはずです。
PHP モニターは、アプリを起動するたびにアップデートが利用可能かどうかを確認します。
この動作を無効にするには、(メニュー バーの PHP モニター アイコンから) [設定] に移動し、[更新を自動的に確認する] のチェックを外します。 (いつでも手動で更新を確認できます。)
最も簡単な方法は、組み込みのPHP バージョン マネージャーを使用することです。これにより、ワンクリックで PHP バージョンをアップグレードできます。
これを手動で行う場合は、以下の手順に従ってください。
ここで間違いを犯しやすく、リンクされていないバージョンの PHP が作成されたり、PHP モニターにバージョンが表示されなくなったりすることがあります。
私がいつもしていることは次のとおりです。
brew update-reset
実行するbrew upgrade
実行するこの後、PHP モニターで PHP バージョンが欠落している場合は、欠落しているバージョンに対して次のコマンドを実行してください。
brew uninstall php@xx
を実行します ( xx
はバージョンです)brew cleanup
を実行します (権限の問題が発生した場合は、フォルダーを手動でクリーンアップする必要がある場合があります)。brew install php@xx
実行します ( xx
はバージョンです)アップグレード後も、 brew link php
実行する必要がある場合があります。
それでおしまい。 PHP Monitor を再度起動すると、ゴールデンな状態になっているはずです。
brew install php
使用して再度インストールしてみてください。
これで問題は解決するはずです。それでも問題が解決しない場合は、 brew link php --force
を実行してください。 (その後、新しいリンクされたバージョンが検出されることを確認するために、端末を再起動する必要がある場合があります。)
brew install php
brew link php --force
.test
ドメインにアクセスしていて、別の PHP バージョンに切り替えた後に 502 (Bad Gateway) が発生した場合は、一般的な問題に対処していることになります。
この問題は通常、Valet をアップグレードし、 valet install
再度実行することで解決します。
composer global update
valet install
約 30 秒ほど後に 502 (Bad Gateway) エラーが表示される場合は、リクエストがタイムアウトしている可能性があります。独自のコードでパフォーマンスの問題を解決する必要がある場合があります。
PHP モニターは、バージョン番号を決定するときに構成によって警告またはエラーが発生する場合、PHP インストールが壊れていることを示します。
PHP Monitor は Homebrew 経由でリンクされたバージョンを変更するため、Valetとターミナル (CLI) の両方で新しい PHP バージョンを使用する必要があります。
ただし、お使いのシステムではこれが当てはまらない場合があります。そうでない場合は、特定のバージョンの PHP がリンクされている可能性があります。その場合、PATH が設定されている.bashrc
または.zshrc
ファイルを変更する必要がある場合があります (使用する端末によって異なります)。
どのバージョンの PHP が使用されているかは、 which php
実行することで確認できます。
コマンドを実行すると、問題の正確な原因を見つけることができます。 Intel では、次のコマンドを実行できます ( 7.4
壊れたバージョンに置き換えます)。
/usr/local/opt/[email protected]/bin/php -r "print phpversion();"
Apple Silicon では、次のコマンドを実行できます ( 7.4
壊れたバージョンに置き換えます)。
/opt/homebrew/opt/[email protected]/bin/php -r "print phpversion();"
ここの出力にエラーまたは警告が表示されるはずです。
通常、これは問題を引き起こす重複した拡張子宣言、またはロードできなかった拡張子です。この問題は自分で解決する必要があります (通常は、問題のある拡張機能を削除するか再インストールします)。
Valet のこのバージョンでは分離のサポートが追加されたため、少なくともValet 3.0 がインストールされていることを確認してください。 (このバージョンの Valet は PHP 5.6 のサポートを終了することに注意してください。)
.ini
ファイルに指定した値は無効です。その場合、PHP は値をバイトとして解析しようとしますが、これは通常は意図されません。 ( 1GB
わずか数バイトに解決され、すべてのアプリケーションがメモリ不足になります。)
1024K
、 256M
、 1G
のような値を指定する必要があります。あるいは、 -1
または単なる整数も許可されます (N バイトが制限となります)。
例: たとえば、メモリ制限として1GB
使用しようとすると、この感嘆符が表示されます。 1GB 制限を設定する正しい方法は、値として1G
使用することです。 (注: わかりやすくするために、表示される値にはB
が追加されるため、 1G
設定すると、PHP Monitor によって報告される値は 1 GB になります。)
(Valet を使用している場合は、 .conf.d/php-memory-limits.ini
ファイルでこれらの制限を調整できます。それ以外の場合は、 php.ini
調整する必要がある場合があります。)
アプリは、関連する.ini
ファイル内で特定のパターンを検索します。通常の延長の場合:
extension="*.so"
; extension="*.so"
Zend 拡張機能の場合:
zend_extension="*.so"
; zend_extension="*.so"
*
はワイルドカードであり、拡張子の名前です。拡張機能をコメント アウトした場合は、PHP モニターが拡張機能を検出できるように、セミコロン (;) とセミコロンの後に 1 つのスペースを入れてコメント アウトしていることを確認してください。
v3.4 以降、ロードされたすべての .ini ファイルは、どの拡張機能が有効であるかを決定するためにソースされます。
Intel マシンまたは Rosetta が有効になっている Apple Silicon マシンで PHP モニターを使用している場合、PHP モニターはメインの Homebrew バイナリが/usr/local/bin/brew
にあることを想定します。
Rosetta を使用せずに Apple Silicon 上で PHP Monitor を使用している場合、PHP Monitor はメインの Homebrew バイナリが/opt/homebrew/bin/brew
にあることを期待します。
ここで問題が発生した場合は、起動時にアラートが表示されます。
通常実行している Homebrew のバージョンが、PHP Monitor が予期しているバージョンと同じであることを確認してください。たとえば、M1 ハードウェアを使用しているが、依然として Rosetta for Homebrew を使用している場合は、Rosetta で PHP Monitor も実行する必要があります。
PHP Monitor はユニバーサル アプリであり、両方のアーキテクチャをサポートしているため、PHP Monitor で Rosetta を有効にする方法については、こちらをご覧ください。
アプリは自動的にアップデートをチェックしますが、これが原因である可能性が最も高いです。
これは起動時に (無効になっていない限り) 行われ、アプリは GitHub でホストされている Caskfile を直接チェックします。このデータは分析には使用されず、分析には使用されません (私の知る限り、分析には使用できません)。
また、PHP モニターがバイナリを使用するときに、 brew
ネットワーク経由で処理を実行するのを防ぐこともできません。
アプリにはインターネット アクセス ポリシー ファイルが含まれているため、Little Snitch などを使用している場合は、これらの呼び出しが発生する理由の説明が必要です。
これらのプリセットは、 ~/.config/phpmon/config.json
にある JSON ファイルで設定する必要があります。
このプリセットが PHP Monitor で機能するには、少なくとも 1 つの有効なプリセットを設定しておく必要があります。
動作するプリセットの例を次に示します。
{ "scan_apps": [], 「サービス」: []、 「プリセット」: [ { "名前": "レガシー プロジェクト", "php": "8.0", 「拡張機能」: { "xdebug": false }、 "構成": { "memory_limit": "128M", "upload_max_filesize": "128M", "post_max_size": "128M" } } ]、 "輸出": {} }
プリセットを特定の PHP バージョンに切り替えたくない場合は、プリセット内のphp
キーを省略できます。
警告これらの変更を検出するには、PHP モニターを再起動する必要があります。
情報スタンドアロン モードで Valet を使用している場合、Homebrew サービスは表示されません。
これらのサービスは、 ~/.config/phpmon/config.json
にある JSON ファイルで設定する必要があります。
独自のユーザー (root ではない) として実行する Homebrew サービスの構成ファイルでカスタム サービスを指定できます。
情報サービスを root として実行する必要がある場合、現在そのサービスを PHP Monitor に追加することはできません。
brew services list
実行すると、利用可能なサービスを確認できます。
mailhog
サービスとmysql
サービスを PHP Monitor に追加する例を次に示します。
{ "scan_apps": [], "サービス": ["mailhog", "mysql"], 「プリセット」: [], "輸出": {} }
警告これらの変更を検出するには、PHP モニターを再起動する必要があります。
これらのカスタム環境変数は、 ~/.config/phpmon/config.json
にある JSON ファイルで構成する必要があります。
PHP モニターは、カスタム環境変数を使用せずに、デフォルトのシェル環境を使用します。カスタム環境変数を手動で設定する必要があります。これらは、たとえば Composer に使用されます。
以下は、考慮されるCOMPOSER_HOME
環境変数の例です。
{ "scan_apps": [], 「サービス」: []、 「プリセット」: [], "輸出": { "COMPOSER_HOME": "/composer/フォルダーへの/絶対パス/フォルダー" } }
警告これらの変更を検出するには、PHP モニターを再起動する必要があります。
ドメインを選択して右クリックすると、さまざまなアプリケーションでこれらのディレクトリを開くことができます。これはワークフローのスピードアップに役立ちます。ただし、これらのアプリを表示するには、まずそれらのアプリを検出する必要があります。
サポートされているアプリは、 PhpStorm、Visual Studio Code、Sublime Text、Sublime Merge、iTermです。
これらのアプリはすべて、システム上の場所に関係なく、正しく検出される必要があります。 open -a "appname"
を使用して開くことができれば、アプリは検出され、機能するはずです。アプリの名前を変更した場合、アプリの検出に問題が発生する可能性があります。
可用性を判断するためにどのファイルがチェックされるかを確認するには、このファイルを参照してください。
~/.config/phpmon/config.json
ファイルを作成して編集し、 scan_apps
キーが設定されていることを確認して、独自のアプリを追加できます。
{ "scan_apps": ["Xcode"、"Kraken"] }
scan_apps
配列には好きなだけアプリを入れることができ、PHP モニターはこれらのアプリの存在をチェックします。フルパスを設定する必要はありません。アプリの名前だけで機能します。ただし、すべてのアプリがフォルダーを開くことをサポートしているわけではないため、成功するかどうかは状況によって異なる場合があります。
警告これらの変更を検出するには、PHP モニターを再起動する必要があります。
PHP モニターはデフォルトでサードパーティアプリの統合をサポートしており、この機能は無効にしない限り環境設定で有効になります。
公式の Alfred ワークフローまたは Raycast 拡張機能を入手できます。
自分で何かを統合したい場合は、 phpmon://
プロトコルを使用し、(PHP モニターの) 設定でサードパーティ アプリの統合が有効になっていることを確認するだけです。
アプリ コールバックを使用すると、macOS と PHP モニターで次の呼び出しが可能になります。
フォルダーのルートにあるcomposer.json
ファイル(存在する場合)がスキャンされ、解釈されます。
バージョンがplatform
に設定されている場合は、それが優先されます。バージョンがplatform
に設定されていないが、 require
である場合 (最も一般的)、そのバージョンが使用されます。
現在有効な PHP バージョンがサイトの実行に必要なバージョンと互換性がある場合は、バージョン番号の横にチェックマークが表示されます。
これは、PHP 要件の制約 (例^8.0
、 ~8.0
または特定のバージョン: 8.0
) を評価することによって決定されます。
PHP モニターは現在、 composer.json
ファイルをチェックして、実行しているプロジェクトを特定しようとします。
このアプローチは、多くのサイトがリンクされている場合にドライバーを要求するよりもはるかに高速ですが、 composer.json
によって推測されるフレームワークまたはプロジェクトの種類が 100% 正確ではない可能性があるため、信頼性は若干低くなります。
必要に応じて、コマンドラインを使用していつでも Valet に問い合わせることができます。私の経験では、ドライバーを取得するとアプリの速度が不必要に低下しました。
[応急処置とサービス] > [Homebrew アクセス許可の復元]を使用して、この問題を (一時的に) 解決し、クリーンで痛みのないbrew upgrade
またはbrew cleanup
プロセスを実行できるようになりました。
これが必要な理由について詳しく知りたい場合は、この問題を参照してください。
連絡して問題を開いてください。 PHP モニターはクラッシュしないはずです... (アプリの実行中に実際に PHP を削除しない限り、これは正常な動作とみなされます。)
クラッシュを報告したい場合は、正確に何が問題になったのかを確認できるよう、関連するログ ファイルを含めてください。
ログを見つけるには、(Finder の) ~/Library/Logs/DiagnosticReports
を調べて、「PHP Monitor」で始まる (ログ) ファイルがあるかどうかを確認します。
さらに、PHP モニターの最新セッションの詳細なログを送っていただければ、さらに詳しい情報を把握することができます。ログはデフォルトでは無効になっています。
touch ~/.config/phpmon/verbose
実行し、PHP Monitor を再起動することで、追加の詳細ログを開始できます。最新のログインは~/.config/phpmon/last_session.log
で確認できます。関連するバグレポートに添付してください。
追跡ソフトウェアや分析ソフトウェアは含めていないため、問題が発生した場合は、問題を通じてお知らせください。
PHP Monitor は完全に無料で利用できますが、余裕がある場合は寄付することでプロジェクトを存続させ、アプリを維持することができます。
このリポジトリの上部にスポンサー リンクがあるか、ここのリンクをクリックして私のスポンサー ページに移動できます。
寄付は本当に Apple Developer Program の費用に役立ち、勤務時間外 (日中の仕事もあります!) 以外にも PHP Monitor で作業を続けるモチベーションを維持してくれます。
特別な感謝の意を表します:
ご寄付、温かいお言葉、ご支援に心より感謝申し上げます。
このアプリは、通常、Homebrew 設定が変更されるたびに、バックグラウンドでphp-config --version
定期的に実行します。ファイルシステム ウォッチャーは、Homebrew のbin
ディレクトリに何か変更があったかどうかを判断するために使用されます。
また、PHP モニターは、 .ini
ファイルの拡張子をチェックし、制限 (メモリ制限、POST 制限、アップロード制限) に関する詳細情報を読み込みます。以下の構成変更の検出に関するセクションも参照してください。
このユーティリティは、Homebrew 経由でインストールした PHP バージョンを検出し、それらを切り替えることができます。
スイッチャーは、使用したいバージョンに属さないすべての PHP-FPM サービスを無効にし、希望するバージョンの PHP をリンクします。次に、目的の PHP バージョンの FPM プロセスが再起動されます。これはすべて並行して行われるため、Valet のスイッチャーよりも少し高速になるはずです。
Valet 3 以降を使用している場合は、分離されたサイトを稼働し続けるために必要な PHP-FPM のバージョンも、必要に応じて開始または停止されます。
PHP モニターは、現在リンクされている PHP バージョンに関連するconf.d
ディレクトリ内のファイルシステムを監視します。
.ini ファイルが変更されるたびに、PHP モニターはアクティブな PHP インストールに関する現在の情報を再ロードしようとします。
拡張機能または他のプロセスが短期間 (1 秒未満) に単一のファイルに何度も書き込みを行った場合、PHP モニターはしばらくしてから (わずかな遅延はありますが) アクティブな構成情報のみを再読み込みします。
Certificates
ディレクトリに一致する証明書が存在するかどうかを確認することによって判断されます。composer.json
ファイルに「注目すべき依存関係」があるかどうかをチェックします。 require
にlaravel/framework
ある場合、結局のところ、プロジェクトの種類がLaravel
ある可能性が高くなります。注:ドキュメント、デスクトップ、またはダウンロード内のフォルダーをリンクしている場合、PHP モニターが正しく動作するためには、PHP モニターにそれらのディレクトリへのアクセスを許可する必要がある場合があります。
これがどのように機能するか詳しく知りたい場合は、ソース コードをチェックすることをお勧めします。
私は可能な限り人間が注釈を付けるよう最善を尽くし、コードの保守をできるだけ容易にするために過度に複雑なアーキテクチャの使用を避けました。コードは長期的に見て完璧ではありません (多くのクリーンアップがまだ発生する可能性があります!) が、アプリケーションは問題なく動作します。
また、テストする必要があるとわかったアプリケーションの主要な部分について、いくつかのテストを行っています。将来的には、UI に関するいくつかのテストをさらに追加したいと考えていますが、現時点では、テストは機能テストよりも単体テストになります。
開発者向けの詳細情報については、開発者向けドキュメント ファイルを参照してください。