プログラミングの注意事項

オペレーティングシステム

webmanはLinuxおよびWindowsシステムで実行可能です。しかし、workermanはWindowsでマルチプロセス設定やデーモンプロセスをサポートしていないため、Windowsシステムは開発環境での開発およびデバッグにのみ推奨され、正式な環境ではLinuxシステムを使用してください。

起動方法

Linuxシステム

php start.php start

このコマンドはデバッグモード用で、通常は開発時に使用します。ファイル更新時にmonitorプロセスが自動的にreloadを検出し、データを表示した際にはターミナルに表示されます。ターミナルを閉じるとwebmanも自動的に閉じます。

php start.php start -d

このコマンドはデーモンプロセスモード用で、正式な環境で使用します。ターミナルを閉じてもwebmanは引き続き実行され、データの表示はターミナルには表示されません。
コードを更新するには、php start.php reload または php start.php restart -d を実行する必要があります。

Windowsシステム

windows.batを実行するか、php windows.phpコマンドを使用して起動し、Ctrl + Cで停止します。
Windowsシステムはstop、reload、status、reload connectionsなどのコマンドをサポートしていません。
Windowsではデーモンプロセスモードもサポートしていません。

常駐メモリ

webmanは常駐メモリのフレームワークです。一般的に、PHPファイルが読み込まれるとopcodeの形式で常駐メモリに保持され、再びディスクから読み込まれることはありません(テンプレートファイルを除く)。
したがって、正式な環境ではビジネスコードや設定の変更後にphp start.php reloadを実行しないと変更が反映されません。
プロセス関連の設定を変更したり、新しいcomposerパッケージをインストールした場合は、php start.php restartを再起動する必要があります。

開発の便利さを考慮して、webmanにはビジネスファイルの更新を監視するためのカスタムプロセスmonitorが自帶されています。ビジネスファイルが更新されると、自動的にreloadが実行されます。
この機能は、workermanがデバッグモードで実行されている場合(起動時に-dをつけない)にのみ有効です。Windowsユーザーは、windows.batまたはphp windows.phpを実行して有効にする必要があります。

出力ステートメントについて

従来のphp-fpmプロジェクトでは、echovar_dumpなどの関数を使用してデータを出力すると、直接ページに表示されますが、webmanの開発プロセス(デバッグモード起動時)では、これらの出力はターミナルに表示され、ページ上には表示されません(テンプレートファイル内の出力を除く)。

exitdieステートメントを実行しない

dieexitを実行すると、プロセスが終了し再起動するため、現在のリクエストが正しく応答されません。

pcntl_fork関数を実行しない

pcntl_forkはユーザーがプロセスを作成しますが、webmanでは許可されていません。

composerでのコンポーネントインストール

composer require xxx/xxxでインストールしたコンポーネントは、再起動するまで有効になりません。