プロジェクト

全般

プロフィール

Bug(バグ) #680

完了

OpenPNE3.0.6-devで認証系のプラグインの設定を変更するとFatal errorが発生する

Mutsumi Imamura さんが14年以上前に追加. 14年以上前に更新.

ステータス:
Fixed(完了)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
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 に変更した。

他の形式にエクスポート: Atom PDF