プロジェクト

全般

プロフィール

Backport(バックポート) #3418

opMobileUserAgent::__construct() で E_STRICT エラーが発生する

Youichi Kimura10年以上前に追加. 10年以上前に更新.

ステータス:
Fixed(完了)
優先度:
Normal(通常)
対象バージョン:
開始日:
2013-10-04
期日:
進捗率:

100%


説明

Overview (現象)

opMobileUserAgent::__construct() には Net_UserAgent_Mobile::factory() を呼び出している箇所があるが、Net_UserAgent_Mobile は PHP4 の形式で書かれたクラスのため、静的メソッドとして呼び出される factory() メソッドに static キーワードが付与されていない。そのため、factory() を呼び出した時点で E_STRICT エラーが発生してしまう。

  protected function __construct()
  {
    require_once 'Net/UserAgent/Mobile.php';
    require_once 'Net/UserAgent/Mobile/NonMobile.php';

    self::$mobile = Net_UserAgent_Mobile::factory();
    if (self::$mobile instanceof Net_UserAgent_Mobile_Error)
    {   
      self::$mobile = new Net_UserAgent_Mobile_NonMobile('');
    }   
  }

Way to fix (修正内容)

Net_UserAgent_Mobile::factory() を使用しているのは opMobileUserAgent::_construct() 以外に無いため、factory() を呼び出す前後で一時的に E_STRICT エラーを error_reporting の値から外すことで回避する。


関連するチケット

関連している OpenPNE 3 - Bug(バグ) #3406: opMobileUserAgent::__construct() で E_STRICT エラーが発生する Won't fix(対応せず)

関係しているリビジョン

リビジョン 1b365046 (差分)
Youichi Kimura10年以上前に追加

ignore E_STRICT error for Net_UserAgent_Mobile::factory() (fixes #3418, BP from #3406)
(cherry picked from commit 5749159540e18f2af0e3bc5373f72a3ddeefe5c8)

リビジョン b50aab8b
Youichi Kimura10年以上前に追加

Merge branches 't-3418', 't-3420', 't-3422', 't-3459', 't-3460', 't-3461', 't-3462', 't-3463', 't-3465' and 't-3471' into stable-3.8.x

履歴

#1 Akihiro KOBAYASHI10年以上前に更新

  • 担当者Youichi Kimura から Akihiro KOBAYASHI に変更

#2 Akihiro KOBAYASHI10年以上前に更新

  • ステータスNew(新規) から Accepted(着手) に変更

#3 Akihiro KOBAYASHI10年以上前に更新

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

https://github.com/openpne/OpenPNE3/pull/81
pullリクエストしました。

#4 Youichi Kimura10年以上前に更新

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

#5 Youichi Kimura10年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

#6 Mutsumi Imamura10年以上前に更新

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

./symfony test:all を実行し異常終了しないことを確認しました。
ブラウザからの動作テストも問題ありません。

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