OSDN Git Service

includePlugin の実装が実体に即していなかったので修正
authorSotaro KARASAWA <sotaro.k@gmail.com>
Wed, 8 Jul 2009 04:36:53 +0000 (13:36 +0900)
committerSotaro KARASAWA <sotaro.k@gmail.com>
Wed, 8 Jul 2009 04:38:31 +0000 (13:38 +0900)
 - この変更には後方互換がありません(が,この変更前の Ethna_Plugin::includePlugin は動かなかったはずです)
 - static に呼ばれる前提で存在していた,Ethna_Plugin::includePlugin を,非staticメソッドとして定義
 - Ethna_Plugin::includeEthnaPlugin は現状に即していなかったため,変更
 - プラグインのソースをincludeするための static なインターフェースとして, Ethna_Plugin::import を定義

CHANGES
class/Ethna_Plugin.php

diff --git a/CHANGES b/CHANGES
index 969ecfc..4cb7326 100644 (file)
--- a/CHANGES
+++ b/CHANGES
 - Ethna_MailSender にて、メール送信に問題がある場合の設定として 'mail_func_workaround' を追加
 -- この値を true に設定すると、メールヘッダの改行コードを一律 CRLF にする処理を回避する
 -- $mail = new Ethna_MailSender(); $mail->setOption(array('mail_func_workaround')); でも設定可能
+- Ethna_Plugin::import という,プラグインソースをincludeするための,staticメソッドを追加.
 
 *** bug fix
 
 - ethna make-plugin-package のデフォルトインストールディレクトリが誤っていたバグを修正
 - iniディレクティブ date.timezone が設定されてないために、E_WARNING が PHP 5.3.0 で出ていたバグを修正
+- Ethna_Plugin::includePlugin メソッドの実装が動作するものではなかったので変更
 
 ** 2.5.0-preview5
 
index f6cf1f6..008ac0f 100644 (file)
@@ -60,6 +60,7 @@ class Ethna_Plugin
 
         // load dir_registry
         $this->_loadPluginDirList();
+
     }
 
     /**
@@ -460,6 +461,7 @@ class Ethna_Plugin
     // {{{ static な include メソッド
     /**
      *  Ethna 本体付属のプラグインのソースを include する
+     *  (B.C.) Ethna 2.5.0 perview 5 以降,このメソッドには意味がありません.Ethna_Plugin::import を使ってください
      *
      *  @access public
      *  @param  string  $type   プラグインの種類
@@ -468,8 +470,24 @@ class Ethna_Plugin
      */
     function includeEthnaPlugin($type, $name)
     {
-        Ethna_Plugin::includePlugin($type, $name, 'Ethna');
+        Ethna_Plugin::import($type, $name);
+    }
+
+    /**
+     *  プラグインのソースを include する
+     *
+     *  @access public
+     *  @param  string  $type   プラグインの種類
+     *  @param  string  $name   プラグインの名前
+     *  @param  string  $appid  アプリケーションID
+     */
+    function includePlugin($type, $name = null)
+    {
+        list($class, $file) = $this->getPluginNaming($type, $name);
+        $dir = $this->_searchPluginSrcDir($type, $name);
+        $this->_includePluginSrc($class, $dir, $file);
     }
+    // }}}
 
     /**
      *  プラグインのソースを include する
@@ -480,7 +498,8 @@ class Ethna_Plugin
      *  @param  string  $appid  アプリケーションID
      *  @static
      */
-    function includePlugin($type, $name, $appid = null)
+    // static function import($type, $name)
+    function import($type, $name = null)
     {
         $ctl =& Ethna_Controller::getInstance();
         $plugin =& $ctl->getPlugin();
@@ -489,9 +508,7 @@ class Ethna_Plugin
             $appid = $ctl->getAppId();
         }
 
-        list($class, $file) = $plugin->getPluginNaming($type, $name);
-        $dir = $this->_searchPluginSrcDir($type, $name);
-        $plugin->_includePluginSrc($class, $dir, $file);
+        $plugin->includePlugin($type, $name);
     }
     // }}}
 }