0

「プラグイン」フォルダーで .php ファイルを検索するループを開始するプラグイン マネージャーのようなプログラムを作成しようとしています。main()これは、各ファイルで呼び出された関数を何らかの方法で実行し、その後他の関数を実行するために必要です。他の機能が衝突することなくこれを達成するにはどうすれmain()ばよいですか?

4

1 に答える 1

1

関数を使用する場合は、それらに名前を付けることができます。しかし、この id のようなものにはクラスを使用します。たとえば、各プラグインには、のように名前空間を付けたり、偽装したりPluginConfigurationできるクラスがある場合があります。PluginName\PluginConfigurationPluginName_PluginConfiguration

次に、これらのクラスを起動して、たとえば次のように呼び出すことができます。

class MyCool_Plugin implements PluginInterface {

  // note the interface wouldnt be absolutely necessary, 
  // but making an interface or abstract class for this would be a good idea
  // that way you can enforce a contractual API on the configuration classes

  public function __construct() {
     // do whatever here
  }

  public function main() {
     // do whatever here
  }
}

アップデート:

ところで、「PluginInterface」には何が含まれますか?

インターフェイスは、クラスが実装する必要があるすべてのメソッド (関数) を定義します。implementsこれを使用して、そのインターフェイスの任意のクラスに最小限の API を適用できます。あなたの説明から、これが方法になりますが、main開発中にさらに追加する必要がある/したい場合があります。

Interface PluginInterface {

   public function main();

}

型ヒントを使用して、特定のメソッド シグネチャを適用することもできます。たとえばApplication、プラグインをロードするインスタンスをプラグイン自体に常に挿入して、何かを登録したり、追加のものを設定したりしたいとします。その場合、次のようにします。

Interface PluginInterface {

   public function main(Application $app);

}
于 2012-09-22T00:16:36.900 に答える