Project

General

Profile

Bug(バグ) #1936

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

Added by Youichi Kimura over 8 years ago. Updated almost 4 years ago.

Status:
Fixed(完了)
Priority:
High(高め)
Target version:
Start date:
2011-03-01
Due date:
% Done:

100%

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

Description

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

Related issues

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

Associated revisions

Revision f6399e4b (diff)
Added by Youichi Kimura over 8 years ago

fixed PHP Strict Standards errors in the opAnonymousMember (fixes #1936)

History

#1 Updated by Shinichi Urabe over 8 years ago

  • Assignee set to Youichi Kimura

#2 Updated by Youichi Kimura over 8 years ago

  • Status changed from New(新規) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

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

#3 Updated by Shinichi Urabe over 8 years ago

  • Target version set to OpenPNE 3.7.0

#4 Updated by Masato Nagasawa about 8 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70
  • 3.6 で発生するか set to Yes

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

#5 Updated by Shingo Yamada about 8 years ago

  • Priority changed from Normal(通常) to High(高め)

#6 Updated by Shingo Yamada about 8 years ago

  • 360対象 set to RC1

#7 Updated by Yuma Sakata almost 8 years ago

  • 360対象 deleted (RC1)

#8 Updated by Yuma Sakata almost 8 years ago

  • 360対象 set to RC1

#9 Updated by Kousuke Ebihara almost 8 years ago

テスターの方へ

この現象を再現させるには、「(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 のソースコードでは(他の要因によって)再現しなくなっているということも考えられます。

#10 Updated by Youichi Kimura almost 8 years ago

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

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

  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 を使用したところ同様のエラーが発生しています。

#11 Updated by Fumie Toyooka almost 8 years ago

  • Status changed from Pending Testing(テスト待ち) to Fixed(完了)
  • % Done changed from 70 to 100

テストOKです

#12 Updated by kaoru n almost 4 years ago

  • 3.8 で発生するか set to Unknown (未調査)

Also available in: Atom PDF