128 Zeilen
Kein EOL
3,4 KiB
PHP
128 Zeilen
Kein EOL
3,4 KiB
PHP
<?php
|
|
/**
|
|
* Project:
|
|
* Contenido Content Management System
|
|
*
|
|
* Description:
|
|
* Debug object to write info to a file.
|
|
* In case you cannot output directly to screen when debugging a live system, this object writes
|
|
* the info to a file located in /contenido/logs/debug.log.
|
|
*
|
|
* Requirements:
|
|
* @con_php_req 5.0
|
|
*
|
|
*
|
|
* @package Contenido Backend classes
|
|
* @version 1.1.1
|
|
* @author Rudi Bieller
|
|
* @copyright four for business AG <www.4fb.de>
|
|
* @license http://www.contenido.org/license/LIZENZ.txt
|
|
* @link http://www.4fb.de
|
|
* @link http://www.contenido.org
|
|
*
|
|
* {@internal
|
|
* created 2007-01-01
|
|
* modified 2008-05-21 Added methods add(), reset(), showAll()
|
|
* modified 2010-05-20 Murat Purc, Hey, last change was nearly 2 years ago ;-)... Fixed generated warnings, see [#CON-309]
|
|
*
|
|
* $Id$:
|
|
* }}
|
|
*
|
|
*/
|
|
|
|
if (!defined('CON_FRAMEWORK')) {
|
|
die('Illegal call');
|
|
}
|
|
|
|
|
|
include_once('IDebug.php');
|
|
|
|
class Debug_File implements IDebug {
|
|
|
|
static private $_instance;
|
|
static private $_hFileHandle;
|
|
private $_sPathToLogs;
|
|
private $_sFileName;
|
|
private $_sPathToFile;
|
|
|
|
/**
|
|
* Constructor
|
|
* Opens filehandle for debug-logfile
|
|
* @access private
|
|
* @return void
|
|
*/
|
|
private function __construct() {
|
|
global $cfg; // omfg, I know... TODO
|
|
$this->_sPathToLogs = $cfg['path']['contenido'].'logs'.DIRECTORY_SEPARATOR;
|
|
$this->_sFileName = 'debug.log';
|
|
$this->_sPathToFile = $this->_sPathToLogs.$this->_sFileName;
|
|
if (file_exists($this->_sPathToLogs) && is_writeable($this->_sPathToLogs)) {
|
|
self::$_hFileHandle = @fopen($this->_sPathToFile, 'a+'); // keep it quiet, might be used in production systems
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Closes file handle upon destruction of object
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
public function __destruct() {
|
|
if (is_resource(self::$_hFileHandle)) {
|
|
fclose(self::$_hFileHandle);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* static
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
static public function getInstance() {
|
|
if (self::$_instance == null) {
|
|
self::$_instance = new Debug_File();
|
|
}
|
|
return self::$_instance;
|
|
}
|
|
|
|
/**
|
|
* Outputs contents of passed variable in a preformatted, readable way
|
|
*
|
|
* @access public
|
|
* @param mixed $mVariable The variable to be displayed
|
|
* @param string $sVariableDescription The variable's name or description
|
|
* @param boolean $bExit If set to true, your app will die() after output of current var
|
|
* @return void
|
|
*/
|
|
public function show($mVariable, $sVariableDescription='', $bExit = false)
|
|
{
|
|
if (is_resource(self::$_hFileHandle) && is_writeable($this->_sPathToFile)) {
|
|
$sDate = date('Y-m-d H:i:s');
|
|
fwrite(self::$_hFileHandle, '#################### '.$sDate.' ####################'."\n");
|
|
fwrite(self::$_hFileHandle, $sVariableDescription."\n");
|
|
fwrite(self::$_hFileHandle, print_r($mVariable, true)."\n");
|
|
fwrite(self::$_hFileHandle, '#################### /'.$sDate.' ###################'."\n\n");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Interface implementation
|
|
* @access public
|
|
* @param mixed $mVariable
|
|
* @param string $sVariableDescription
|
|
* @return void
|
|
*/
|
|
public function add($mVariable, $sVariableDescription = '') {}
|
|
/**
|
|
* Interface implementation
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
public function reset() {}
|
|
/**
|
|
* Interface implementation
|
|
* @access public
|
|
* @return string Here an empty string
|
|
*/
|
|
public function showAll() {}
|
|
}
|
|
?>
|