Loggerで自己参照してる変数を出力するとエラーになる。
どんな現象か?
自己参照してる変数をログ出力すると以下エラーになる。
Fatal error:Nesting level too deep - recursive dependency? in ...
$a = new stdClass(); $a->a = $a; var_dump($a); //var_export($a); Logger:info($a);
原因は?
var_exportで落ちてる。
rhaco/util/model/LogRecord.php(rev3294/3304)
class LogRecord{ :n function getValue($format=true){ return ($format) ? ((!is_string($this->value) ? var_export($this->value,rue) :$this->value)) :$this->value; }
var_export は自己参照を展開できないのが仕様だそうな。
[http:/bugs.php.net/bug.php?id=30471:itle=PHP Bugs:#30471:var_export:Nesting level too deep - recursive dependency?]
[http:/jp2.php.net/manual/ja/function.var-export.php:itle=PHP:var_export - Manual]
var_dump使えばいいんじゃないかな。
2008-07-16追記
http://fixdap.com/p/rhaco/14940/
で改修してもらいました。