PHP5.2.8 で Mojavi3 を動作させた際に出るWarning対処方法まとめ


php5.2.8-warning.png

PHP5.2.8 にバージョンアップしたら、 Mojavi3 で警告が出るようになりました。

Warning: fclose() [function.fclose]: 37 is not a valid stream resource in \path\to\mojavi\config\ConfigCache.class.php on line 408

今回はこれを抑制する方法。

コードを見てみると、mojavi\config\ConfigCache.class.phpでopendir()で取得したハンドルをfclose()で閉じようとしているのが原因だったので、fclose()をclosedir()に修正するだけでOKです。Sean Kerr 氏の凡ミス?

修正箇所その1

        // close file pointer
        fclose($fp);

        // close file pointer
        closedir($fp);

修正箇所その2

            // close file pointer
            fclose($fp);

            // close file pointer
            closedir($fp);

キャッシュファイルの生成時と消去時とで関数が異なるため、修正箇所は2箇所になりますが、どちらも直しておけば問題ないです。手元の環境ではPHP5.2.6までは問題なく動作してましたが、PHP5.2.8にバージョンアップしたとたんにWarningを吐くようになりました(コチラの方が動作としては正しい)。

Mojavi3で動いてるシステムはまだあると思いますが、PHPをバージョンアップしたらフレームワーク内からWarningが出た、という時は参考にしてみるといいかもです。

ああ、いっそsymfonyでリプレースしたいなぁ...

トラックバック(0)

このブログ記事を参照しているブログ一覧: PHP5.2.8 で Mojavi3 を動作させた際に出るWarning対処方法まとめ

このブログ記事に対するトラックバックURL: http://monolog.spanstyle.com/mt/mt-tb.cgi/424

このサイトについて

自分用リンク

Powered by Movable Type 4.22-ja

PR

このブログ記事について

このページは、ishiiが2009年2月 3日 14:36に書いたブログ記事です。

ひとつ前のブログ記事は「マウス操作でカンタンに判定、色彩センステスト」です。

次のブログ記事は「Firefox で Google Analytics の日付変更が突然できなくなった時の解決方法」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

アイテム

  • swfobject.png
  • symfony.png
  • doclean.png
  • clean.png
  • twitterui.png
  • php5.2.8-warning.png
  • pagesaver.png
  • analytics.png
  • Munsell Hue Test.png
  • Munsell Hue Test0.png