35

私は自分で使用するカスタム CMS に取り組んでおり、コードを少し簡単に拡張できるようにプラグイン システムを実装することを考えていました。ただし、アーキテクチャとレイアウトを概念化するのに苦労しています。

同様の機能を実装するいくつかのオープン ソース プログラムを試すことができることはわかっていますが、これは現時点では単なる学術的なものであるため、外国のコードを掘り下げるのにあまり時間をかけたくありません。

続行する方法について何か良いアイデアを持っている人はいますか? より人気のあるプログラムのいくつかがそれを行う方法を誰かが概説できれば、それは完璧です.

4

1 に答える 1

41
  1. プラグインをプラグインする機能を定義します (つまり、プラグインが何を行い、何を超えるのか)。
  2. プラグインが適合するクラス階層を定義します。たとえば、すべての記事マングリング プラグインは ArticleMangler から継承する必要があります。
  3. /plugins など、プラグインの物理的な場所を定義する
  4. その場所に存在するすべてのプラグインをインポートします
  5. DecoratorまたはObserverパターンを使用して、プラグインの動作を注入するか、イベントの発生をプラグインに通知します。場合によっては、戦略も適用できます。

PHP を使用すると、注意しないと混乱する可能性がありますが、これはかなり簡単です。私は、プラグインが自分自身をプラグイン マネージャーに登録して、何が起こったかを通知し、アクションが発生するのを待つ Observer メソッドが好きです。

プラグインを信頼しない場合は、プラグインの登録を許可するイベントに対するコントロールを追加する必要があります。

于 2008-10-20T07:19:19.463 に答える