最近、オープンソースの個人ブログシステムを構築しようと考えており、プラグイン機能を追加したいと考え、プラグイン機能の実装方法を検討しました。
私の理解によれば、プラグインの機能は、既存のプログラムの機能を追加および改善することであり、プラグインはプログラムが提供するインターフェースに接続し、プログラムのデータなどを変更する必要があります。接続されたインターフェイスを通じてオンになります。
プラグイン フックの機能は、プラグイン インターフェイスに似ており、プラグインはプログラム内の対応するフックに接続して、プログラムによって提供されるコンテンツを変更します。
私のプラグイン メカニズムはすべてオブジェクト指向の方法で構造化されており、最初にプラグインを初期化するために、後続のフック呼び出しのためにプラグインの名前を保存するために配列を使用します。
すごいです
このプラグインの機能は、HTML コンテンツに見栄えの良いスタイルを追加することです。プラグイン名を ./root/ext フォルダーに置きます。プラグイン フォルダーの名前、および main.php はプラグインのメインの呼び出し入り口です。
プラグインの内部は、プラグインのクラス名を持つ Class です。
$plug_config[]=array( 'plug_name'=>'onePlug', 'plug_version'=>'1.01');
このグローバル $plug_tem_global; は、グローバル変数 $plug_tem_global を受信コンテンツのパラメーターとして使用します。これを変更することは、コンテンツを変更することと同じです。
プラグイン メカニズムのメイン ファイルでは、プラグイン フックはプラグインを呼び出すためのインターフェイスとして機能します。これは実際には文字列変数であり、その内部値は配列の名前です。現在の場所に挿入されたプラグインを保存します
例: プラグインによって初期化される配列の名前は plug_config なので、この変数を操作する必要があるため、ここでのプラグイン フックは $plug_config です。クラス内では、global を使用してグローバル変数に変換します。
<?php class onePlug{ function __construct(){ global $plug_tem_global; $temarr=explode('<br>',$plug_tem_global); $plug_tem_global='<div style="width:200px;padding:100px 80px;border-radius:200px;margin:100px auto;background-color:#c33;text-align:center;color:#fff;font-family:微软雅黑;">'.implode("<br><br>",$temarr).'</div>'; }}
プラグインの実行では、現在のフックに適用されるすべてのプラグインを実行するために内部でループが使用されます
$plug_point_name='plug_config';global $$plug_point_name;
以下は、を使用しない場合の効果の比較です。プラグインとプラグインの使用法、笑~ 昔々、山がありました...