この間のMojaviバグ疑惑ですが、気になるのでもう少し調べてみました。
ForumのOld Supportに該当する投稿がありました。(去年の5月だからかなり前です。)
Mojavi Forum > ErrorLogger and Smarty
However, Mojavi’s controller automatically sets an instance of its own ErrorLogger class (opt/filters/ErrorLogger.class.php) as the error handler (thus overriding Smarty’s settings), which defaults to flagging E_NOTICE as a fatal error. So every time I set a {$tag} in my Smarty template that does not have a corresponding value set in my View, I get a FATAL error.
やっぱりSmarty使ったときE_NOTICEがFATALエラーってでて困ってます。
I would really like to see that change in the source Mojavi too, feti. Error handling is really weird right now.
Will you resist the plea of your people? Come on, be a good and just ruler here ;)
ところでMojaviって1人で作ってるんでしょうか?エラー直してくれってsetiという人を名指ししてるし、Mojavi Founderの肩書きも他に見当たらないです。しかし言い方が気に入らなかったのか、
The check against error_reporting() is used to decide when to log an error depending on whether or not it was supressed.
Without the check, or with improper checking an error that occurs from @function() would be reported, when you don’t want it to be. That’s why the checking exists. Otherwise it proceeds as normal.
問題無い的発言。
しかし、その後の発言で端的にまとめられてますがそのままでは困る点が。
- Smartyで未定義の変数があるとFATALエラー
- ロギングのとこでWARRNINGとERRORが逆
- (上記のせいで)WARRNINGがでるとFATALエラーでスクリプトが終わる
- ユーザーがerror_reporting設定しても無視される
最後のは別にいいかなと思いますがその他は露骨に困ります。
最終的には結局自己解決して終了してます。
SVNの2.0.1 DEV見ても変わってないので特に取り入れられて無い様子です。
もう2系はどうでもいいやって感じなんでしょうか。それとも「もうPHP4アンインストールしたよ」とかでしょうか。
ブランチとか厭なのでパッチを公開しつつ本家に「できれば・・・反映してもらえないかと・・・PLZ・・・」という地道な働きかけをして行きたいと思います。