「プラグイン」フォルダーで .php ファイルを検索するループを開始するプラグイン マネージャーのようなプログラムを作成しようとしています。main()
これは、各ファイルで呼び出された関数を何らかの方法で実行し、その後他の関数を実行するために必要です。他の機能が衝突することなくこれを達成するにはどうすれmain()
ばよいですか?
質問する
55 次
1 に答える
1
関数を使用する場合は、それらに名前を付けることができます。しかし、この id のようなものにはクラスを使用します。たとえば、各プラグインには、のように名前空間を付けたり、偽装したりPluginConfiguration
できるクラスがある場合があります。PluginName\PluginConfiguration
PluginName_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 に答える