操作
Bug(バグ) #3406
完了Task(タスク) #3403: OpenPNE の既存のテストコードが正常に動作するように修正を行う
opMobileUserAgent::__construct() で E_STRICT エラーが発生する
開始日:
期日:
進捗率:
0%
予定工数:
3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Unknown (未調査)
説明
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 の値から外すことで回避する。
Youichi Kimura さんが約11年前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 5749159540e18f2af0e3bc5373f72a3ddeefe5c8 で適用されました。
Shinichi Urabe さんが約11年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
レビューOKです
操作