アプリケーションを簡単に見には、アクションのあなたの最高のコースでは、上記のコメントで示唆されているように、基本クラスを使用することであると信じて私をリードしています。範囲に
何か:
class IRCModule {
private static $module_dir = ''; //put your module directory here w/o trailing slash
public static function getModule($module) {
//if the module directory doesn't exist, don't do anything
if(!is_dir(self::$module_dir.DIRECTORY_SEPARATOR.$module)) return false;
//load the module file
$fname = scandir(self::$module_dir.DIRECTORY_SEPARATOR.$module);
$fname = $fname[2]; //first 2 elements will be . and ..
require_once(self::$module_dir.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$fname);
$className = str_replace('.class.php',NULL,$fname);
return new $className();
}
}
は、次に、あなたのモジュールを使用していることを延長します。それはあなたが単に古いファイル/my/module/dir/moduleName/moduleNameV1.0.class.phpだ削除して新しいバージョン/my/module/dir/moduleName/moduleNameV1.1でそれを置き換えることにより、モジュールを上書きすることができるようになります。 class.php
コメントに記載されているように、これは最終的にサーバー上のメモリを満たすので、大幅に変更するたびにサービスの再起動をスケジュールする必要がありますが、要求に応じて新しいバージョンを読み込むこともできますサービスを停止することなく。
より安定したアプローチは、親スクリプトからの接続ごとにプロセス制御とデーモンをスピンオフすること、またはディスク/データベースのすべてのデータを格納するキャッシュシステムを実装することです。モジュールのバージョンを確認し、すぐにサーバーを再起動します。しかし、上記の解決策は当分あなたのために働くはずです:)
基本クラスを作成してから、「MyClassV123 extends MyBase」のようにするのはどうですか?そうすれば、常に新しいバージョンを読み込むことができます。あなたは、多くの場合、それを行う場合はもちろん、これはメモリリークが発生しますが、その後、私はPHPはとにかく長いランタイムのための完璧ではないと言うでしょう。 – Chronial