我的自制簡單記錄器(只是一個包裝fopen
,fwrite
,fclose
)應當啓用或禁用動態。我想我檢查,如果日誌記錄是啓用的方法是矯枉過正(每次調用一個測井方法需要評估LOGGING
):PHP的fwrite爲空?
的config.inc.php
define('LOGGING', true);
記錄。 PHP
public function __construct($filename)
{
$this->fp = fopen($filename, 'w+');
}
public function __destruct()
{
fclose($this->fp);
}
public function warn($message)
{
$this->log('WARN', $message);
}
private function log($type, $message)
{
if(!defined(LOGGING) || !LOGGING) return;
fwrite($this->fp, "[$type] $message\n");
}
問題:如何文件處理程序初始化像null
並取消檢查LOGGING
?我的意思是這樣的:
public function __construct($filename)
{
// Create a fake stream if logging is disabled
$this->fp = !defined(LOGGING) || !LOGGING ? null : fopen($filename, 'w+);
}
未來呼叫$logger->warn('Ops..')
應該什麼都不做,而不會觸發任何錯誤或通知。
'的/ dev/null' ... :) – BoltClock
這是OS具體點嗎? – gremo
其實,是的,它只針對Unix類操作系統。 – BoltClock