Location: PHPKode > scripts > Logger_ciacob > logger_ciacob/LoggerDemo.php
<?php

	require_once ('assets/domit/xml_domit_include.php');
	require_once ('assets/ParamsProxy.php');
	require_once ('assets/Logger.php');

	/**
	* Showcases the functionality of the Logger class.
	* Logger is an on-disk var_dump()ing tool for PHP developpers. You use it to log values from your
	* PHP program, at runtime.
	*
	* @author Claudius Tiberiu Iacob <hide@address.com>.
	* @license Creative Commons Attribution Share Alike - Claudius Tiberiu Iacob 2009
	*/
	class LoggerDemo {

		/**
		* @constructor
		* Logging pretty much of anything one would need: strings, integers, arrays, objects...
		*/
		public function __construct () {
			// Log a string:
			Logger::getInstance()->log ('This is my string');
			// Log a number:
			Logger::getInstance()->log (1908734619);
			// Log an array:
			$myArray = array ('red' => 0xff0000, 'green' => 0x00ff00, 'blue' => 0x0000ff);
			Logger::getInstance()->log ($myArray);
			// Log an object:
			$myObject = new Foo();
			Logger::getInstance()->log ($myObject);
			// Log a resource:
			$myResource = fopen (__FILE__, 'r');
			Logger::getInstance()->log ($myResource);
			fclose ($myResource);
			// Log the special value NULL:
			Logger::getInstance()->log (null);
			// Log boolean false:
			Logger::getInstance()->log (false);
			// Log boolean true:
			Logger::getInstance()->log (true);
			// Done with logging.
			//
			// Remember that you have no restrictions as to when is logging permitted; since output
			// goes to a file on disk rather than user's browser, you're not interfering with HTTP
			// headers, nor HTML layout.
			$this->makePageContent ();
		}

		// Less relevant class methods...
		private function makePageContent () {
			echo '<?xml version="1.0" encoding="UTF-8"?>
			<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
			    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
			<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
			  <head>
			    <title>LoggerDemo</title>
			  </head>
			  	<body>
			  		<h2>Logger Demo</h2>
			  		<p>This class executes a series of calls to
			  		<code>Logger::getInstance()->log(...)</code> in its constructor method. Examine
			  		the source code of <code>LoggerDemo.php</code> and the resulting <code>' .
			  		$this->getLogFileLocation() . '</code> file.
				</body>
			</html>';
		}

		private function getLogFileLocation () {
            $configData = new DOMIT_Document();
            $configData->loadXML ('assets/ParamsProxy_config.xml');
            $configFolderPath = $configData->documentElement->getElementsByPath('//value', 1)->getText();
            $commonParentFolder = dirname ($configFolderPath);
            if (strpos ($commonParentFolder, DIRECTORY_SEPARATOR) !==
            	strlen ($commonParentFolder) - 1) {
            	$commonParentFolder .= DIRECTORY_SEPARATOR;
            }
            $logsFolderPath = $commonParentFolder . 'logs';
            $logFilePath = $logsFolderPath . DIRECTORY_SEPARATOR . LoggerDemo . DIRECTORY_SEPARATOR .
            	'log.txt';
            return $logFilePath;
		}

	}
	$loggerDemo = new LoggerDemo();

	// Sample class to demonstrate logging of objects:
	class Foo {
		public $bar = 'bar';
	}
?>
Return current item: Logger_ciacob