操作
Bug(バグ) #680
完了OpenPNE3.0.6-devで認証系のプラグインの設定を変更するとFatal errorが発生する
開始日:
2010-02-18
期日:
2010-02-18
進捗率:
100%
予定工数:
3.6 で発生するか:
3.8 で発生するか:
説明
現象¶
OpenPNE3.0.6-devで認証系のプラグイン(opAuthOpenIDPluginやopAuthMailAddressPluginなど)の設定を変更するとFatal errorが発生する。
再現環境¶
- 手嶋屋開発環境
- OpenPNE3.0.6-dev
- Firefox3.5.7にて確認
再現手順¶
管理画面のプラグイン設定で認証系のプラグインの設定を変更する
原因¶
3.0.x で利用している ORM は Propel であるが、 eefe6cceb874292d0c22eb4610dbf44ebfd831e5 の修正で、 3.1.x 以降で利用している ORM である Doctrine のクラス向けの変更を適用してしまっていた。
Doctrine において Propel でいう SnsConfigPeer にあたるものは SnsConfigTable だが、これは Propel とは違い常にクラスインスタンスが利用される(Propel の場合はクラスインスタンスではなく、通常は直接クラスメソッドが使われる)。そのため、 Doctrine においては SnsConfigTable::set() はインスタンスメソッドとしてコールされるために $this 変数が利用されていた。しかし Propel の場合は SnsConfigPeer::set() はクラスメソッドになるため、 $this を利用することは文法違反になる。
修正内容¶
Propel 向けのコードになるように、 SnsConfigPeer::$config へのアクセス方法を $this->config から self::$config に変更した。
操作