PHPのrequire_onceがおかしいと思う
PHPの通販サイトのオープンソース EC-Cube を使ってて、
[17-May-2010 19:19:31] PHP Fatal error: Cannot redeclare class Net_URL in ...
のエラーが。。。
昨日まではバッチリ動いてたのに。。。
何もプログラムいじってないのに。。。
debug_backtrace関数と、get_decleared_classesの関数を使ってプログラムをデバッグしてみると、
// data/class/helper/SC_Helper_Mobile.phpの25行目 require_once(CLASS_PATH . '../module/Net/URL.php'); // data/class/pages/LC_Page.phpの25行目 require_once(DATA_PATH . 'module/Net/URL.php');
の2箇所でURL.phpが読み込まれてる。。。
onceだろ!!
googleで検索したら、
EC-Cubeに限らず他のオープンソースを使っててても
この現象が生じるみたい。
EC-Cubeのサポートフォーラムにも、(URL.phpじゃないけど) 同様のエラーが報告されてた。
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=4077&forum=2&start=10
の下の方。
get_include_path使って、他のライブラリとの競合とかも調べたけど、問題なさそう。
結局、PCを再起動したらエラーが起きなくなった。。。
PHPのバージョンは、現時点で最新の5.3.2です。
たちが悪いイタズラです。。。2時間返して。。。