Bug(バグ) #1759
occurs "warning" when second argument of the __() i18n translation method is non-array (i18nの翻訳メソッド__の第二引数に配列以外を渡した場合に warning が発生する)
100%
Description
再現バージョン¶
- OpenPNE3: OpenPNE3.6beta7-dev
概要¶
この現象は以下のURIにて確認可能です。
pc_frontend_dev.php/connection/new
opToolkit::retrieveAPIList() にて下記のように第二引数に null を指定している箇所がある。
if ($isWithI18n) { $caption = $i18n->__($caption, null, 'api'); }
opI18N::__() の問題の箇所で foreach() をしているため warning となっている。
foreach ($args as $k => $v) { if ($v instanceof SnsTerm) { $args[$k] = (string)$v; } }
さらに return 時に array_merge を行っているため、この対応も必要である。
return parent::__($string, array_merge($this->parsed[$string], $args), $catalogue);
修正方針¶
第二引数が配列でない場合に foreach() を処理しないようにし、
同様に array_merge() も行わないように修正を行う。
Related issues
Associated revisions
fixed non-array (fixes #1759)
History
#1
Updated by Masato Nagasawa over 11 years ago
- Subject changed from i18nの翻訳メソッド__の第二引数ni to i18nの翻訳メソッド__の第二引数に配列以外を渡した場合にエラーになる
- Status changed from New(新規) to Accepted(着手)
- Assignee set to Masato Nagasawa
- Target version set to OpenPNE 3.7.0
- 3.6 で発生するか set to Yes
#2
Updated by Masato Nagasawa over 11 years ago
- Subject changed from i18nの翻訳メソッド__の第二引数に配列以外を渡した場合にエラーになる to i18nの翻訳メソッド__の第二引数に配列以外を渡した場合に warning が発生する
#3
Updated by Masato Nagasawa over 11 years ago
- Subject changed from i18nの翻訳メソッド__の第二引数に配列以外を渡した場合に warning が発生する to occurs "waning" when second arguments of the __ i18n translation method is non-array (i18nの翻訳メソッド__の第二引数に配列以外を渡した場合に warning が発生する)
#4
Updated by Masato Nagasawa over 11 years ago
- Status changed from Accepted(着手) to Pending Review(レビュー待ち)
- % Done changed from 0 to 50
更新履歴 9b2f55d84ecb1e0cc2aa47a77b9b42f0582799f5 で適用されました。
#5
Updated by Kousuke Ebihara about 11 years ago
- Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
- % Done changed from 50 to 70
正直これは opI18N::__() ではなくコール側での問題だと思うので、単純にそこを修正すればよい問題のように思います(あと Type Hinting 指定するとか)。
……が、まあ、配列以外の値に対する考慮がされているのはいいことだと思うのでこれはこれでレビュー OK とします。
ちなみに、このレビューの過程で、このメソッドにおいてパフォーマンスに関わるミスが存在していることが確認できたのでチケットを作成しました。
OpenPNE 3 - Bug(バグ) #2256: Text-translation method, opI18N::__(), always parse text in disregard of parsed text cache (翻訳に用いられる opI18N::__() がパース済みテキストのキャッシュを無視して常にテキストのパースをおこなっている) - OpenPNE Issue Tracking System
http://redmine.openpne.jp/issues/2256
#6
Updated by Minoru Takai almost 11 years ago
- Subject changed from occurs "waning" when second arguments of the __ i18n translation method is non-array (i18nの翻訳メソッド__の第二引数に配列以外を渡した場合に warning が発生する) to occurs "warning" when second argument of the __() i18n translation method is non-array (i18nの翻訳メソッド__の第二引数に配列以外を渡した場合に warning が発生する)
チケットタイトルの文字列を一部修正しました。
#7
Updated by Yuma Sakata over 10 years ago
- Status changed from Pending Testing(テスト待ち) to Fixed(完了)
- % Done changed from 70 to 100
テストOKです。
#8
Updated by kaoru n over 6 years ago
- 3.8 で発生するか set to Unknown (未調査)
#9
Updated by Youichi Kimura over 5 years ago
- Related to Bug(バグ) #4168: opI18N::__() のパラメータに語形変化の設定をしたSnsTermインスタンスを渡しても反映されない added