私は自分のCMSを学習目的で(しかも楽しいために)ビルドしましたが、今ではエクステンション(プラグイン)の基本的な形式をサポートするように拡張したいと考えています。私はある種のオブザーバーパターンで作業したいと思っています。具体的には、ある拡張のために拡張子がExtensionManager
で登録されています(例えば、onRenderTitle()
)。すべての拡張は、システムのすべての拡張に対して実行される1つの必須クラスExtensionData
で構成されます。拡張機能は、コールバックを使用してこのクラスに登録できます(ExtensionManager
はすべてExtensionData
クラスに渡されます)。ホームメイドCMSにエクステンションをインストール
しかし、すべての拡張モジュールはすべてのページ読み込みに自身を登録する必要があります(PHPはすべてのページ読み込みの間に状態を失うため)、パフォーマンス上の問題が発生する可能性があります。
私はこれを完全に間違っていますか?それとも、これは行く方法ですか?拡張機能をサポートするCMSを作成する経験はありません(これは私が習得しようとしているものです)。私はWordpressが拡張機能でどのように動作するのか見てみましたが、どうやってそれらを読み込むのか分かりませんでした。
ありがとう!そして、wpはこれらの拡張をどのようにロードしますか?それはページが読み込まれるたびにそれをしますか? –
私はWPが登録されたプラグインの何らかの種類のキャッシュを使用していると思います。私はあなたの基本的なCMSがプラグインディレクトリを通過してブートストラップに登録するのはまったく問題ないと思います。 –
どうもありがとうございました! :) –