多くのプラグインを含むフォルダーがあります。各プラグインには同じ名前のクラスが含まれていますが、内容は異なります。
plugin01.php
class Plugin{
public function get($a){
return 'Plugin01 - '.$a;
}
}
plugin02.php
class Plugin{
public function get($a){
return 'Plugin02 - '.$a;
}
}
Plugins.php で、このプラグインをロードしたい。しかし、一度だけではありません。
class Plugins{
public static function load($id){
require $id.'.php';
$plugin = new Plugin();
return $plugin->get('test');
}
}
echo Plugins::load('plugin01')."\n";
echo Plugins::load('plugin02')."\n";
echo Plugins::load('plugin01');
期待される結果:
Plugin01 - テスト
Plugin02 - テスト
Plugin01 - テスト
現在の結果:
致命的なエラー: クラス プラグインを再宣言できません
私はredefining
クラス名でありincluding
、何度も同じプラグインであるため、これは間違いなく機能しません。
私の質問は、ファイルを関数スコープ (外部ファイルで定義されたすべてのクラスを含む) にのみ含めることはできますか?
PHPでそれを行うことはできますか、それともクラスごとに異なる名前を使用する必要がありますか?