プロジェクト

全般

プロフィール

Bug(バグ) #1936

完了

opAnonymousMember クラスにStrict Standardsエラーが含まれている

Youichi Kimura さんがほぼ14年前に追加. 約9年前に更新.

ステータス:
Fixed(完了)
優先度:
High(高め)
担当者:
対象バージョン:
開始日:
2011-03-01
期日:
進捗率:

100%

予定工数:
3.6 で発生するか:
Yes
3.8 で発生するか:
Unknown (未調査)

説明

error_reporting に E_STRICT を設定している環境において、以下のエラーが出力される場合があります。

PHP Strict Standards:  Declaration of opAnonymousMember::getConfig() should be compatible with that of Member::getConfig() in /home/upsilon/git/openpne3/sqlite/lib/user/opAnonymousMember.class.php on line 158

Strict Standards: Declaration of opAnonymousMember::getConfig() should be compatible with that of Member::getConfig() in /home/upsilon/git/openpne3/sqlite/lib/user/opAnonymousMember.class.php on line 158
PHP Strict Standards:  Declaration of opAnonymousMember::delete() should be compatible with that of Member::delete() in /home/upsilon/git/openpne3/sqlite/lib/user/opAnonymousMember.class.php on line 158

Strict Standards: Declaration of opAnonymousMember::delete() should be compatible with that of Member::delete() in /home/upsilon/git/openpne3/sqlite/lib/user/opAnonymousMember.class.php on line 158
PHP Strict Standards:  Declaration of opAnonymousMember::save() should be compatible with that of opDoctrineRecord::save() in /home/upsilon/git/openpne3/sqlite/lib/user/opAnonymousMember.class.php on line 158

Strict Standards: Declaration of opAnonymousMember::save() should be compatible with that of opDoctrineRecord::save() in /home/upsilon/git/openpne3/sqlite/lib/user/opAnonymousMember.class.php on line 158

関連するチケット 1 (0件未完了1件完了)

関連している OpenPNE 3 - Backport(バックポート) #2196: opAnonymousMember クラスにStrict Standardsエラーが含まれているFixed(完了)Kousuke Ebihara2011-06-10

操作

Shinichi Urabe さんがほぼ14年前に更新

  • 担当者Youichi Kimura にセット

Youichi Kimura さんがほぼ14年前に更新

  • ステータスNew(新規) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

更新履歴 f6399e4b45bf2370280d8506be7a2148e78c66c7 で適用されました。

Shinichi Urabe さんがほぼ14年前に更新

  • 対象バージョンOpenPNE 3.7.0 にセット

Masato Nagasawa さんが13年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更
  • 3.6 で発生するかYes にセット

レビューOKです。
説明のフォーマット統一と、バックポートの作成をお願いします。

Shingo Yamada さんが13年以上前に更新

  • 優先度Normal(通常) から High(高め) に変更

Shingo Yamada さんが13年以上前に更新

  • 360対象RC1 にセット

Yuma Sakata さんが13年以上前に更新

  • 360対象 を削除 (RC1)

Yuma Sakata さんが13年以上前に更新

  • 360対象RC1 にセット

Kousuke Ebihara さんが13年以上前に更新

テスターの方へ

この現象を再現させるには、「(1) 未ログイン状態で」「(2) セッションの情報からメンバーを取得しようとしていて」「(3) error_reporting に E_STRICT が含まれる」状況を作り出す必要があります。

具体的な再現方法について調査したところ、apps/pc_frontend/config/settings.yml や apps/mobile_frontend/config/settings.yml、 apps/pc_backend/config/settings.yml の dev 環境設定において、 error_reporting に E_STRICT が含まれていないことが分かりました。つまり、これらのアプリケーションでは (1) と (2) を満たすことはあっても (3) は満たされません。

そのため、 E_STRICT が設定されているアプリケーションでこの現象を再現させるしかありません。設定ファイルを見る限りでは、 apps/api/config/settings.yml と apps/mobile_mail_frontend/config/settings.yml が該当します。しかし、ざっと見てみたところ、これらのアプリケーションでセッションからメンバーを取得しようとしている場面はなさそうでした。従って、 (3) は満たしますが (1) と (2) は満たさないように見えます。(ただし、これについては調査に漏れがある可能性はあります)

ソースコードに手を入れてよいのであれば、 apps/pc_frontend/config/settings.yml の error_reporting の記述を E_ALL | E_STRICT になるようにすることで(つまり (3) の条件を満たすようにすることで)、おそらくこの現象を発生させることができます(が、 PEAR ライブラリによって発生する Strict standards エラーも大量に出ます。現状のエラーレベルに E_STRICT が含まれていないのは、おそらくこれを抑止する目的があったのでしょう)。

ソースコードに手を入れずに再現させる方法は仮に存在したとしてもちょっと思いつきません。オリジナルの修正者の Youichi Kimura さんがそのようなケースを把握している可能性はありますが、 6 ヶ月前のことですし、覚えていらっしゃらないか、現時点の OpenPNE のソースコードでは(他の要因によって)再現しなくなっているということも考えられます。

Youichi Kimura さんが13年以上前に更新

当チケット報告者の木村です。

このエラーが発生した具体的な状況は、

  1. /etc/php5/cli/php.ini と apps/pc_frontend/config/settings.ymlE_ALL | E_STRICT を設定した上で
  2. functional テストを実行した (ブラウザでの閲覧でも再現可?)

という状態でした。
チケット作成時はおそらく apps/pc_frontend/config/settings.yml の変更を見落としていたため説明に書かれていませんでしたが、実際にはここで指定した E_ALL | E_STRICT が適用されたのだと思います。
手元の環境 (f6399e4b を取り消した状態) では 2 で test/functional/pc_frontend/memberActionsTest.php を使用したところ同様のエラーが発生しています。

Fumie Toyooka さんが約13年前に更新

  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率70 から 100 に変更

テストOKです

kaoru n さんが約9年前に更新

  • 3.8 で発生するかUnknown (未調査) にセット

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