<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
		<head>
			<!-- template designed by Marco Von Ballmoos  -->
			<title>Docs For Class LoggerAutoloader</title>
			<link rel="stylesheet" href="../media/stylesheet.css" />
						<script src="../media/lib/classTree.js"></script>
												<script language="javascript" type="text/javascript">
				var imgPlus = new Image();
				var imgMinus = new Image();
				imgPlus.src = "../media/images/plus.png";
				imgMinus.src = "../media/images/minus.png";
				
				function showNode(Node){
							switch(navigator.family){
								case 'nn4':
									// Nav 4.x code fork...
							var oTable = document.layers["span" + Node];
							var oImg = document.layers["img" + Node];
									break;
								case 'ie4':
									// IE 4/5 code fork...
							var oTable = document.all["span" + Node];
							var oImg = document.all["img" + Node];
									break;
								case 'gecko':
									// Standards Compliant code fork...
							var oTable = document.getElementById("span" + Node);
							var oImg = document.getElementById("img" + Node);
									break;
							}
					oImg.src = imgMinus.src;
					oTable.style.display = "block";
				}
				
				function hideNode(Node){
							switch(navigator.family){
								case 'nn4':
									// Nav 4.x code fork...
							var oTable = document.layers["span" + Node];
							var oImg = document.layers["img" + Node];
									break;
								case 'ie4':
									// IE 4/5 code fork...
							var oTable = document.all["span" + Node];
							var oImg = document.all["img" + Node];
									break;
								case 'gecko':
									// Standards Compliant code fork...
							var oTable = document.getElementById("span" + Node);
							var oImg = document.getElementById("img" + Node);
									break;
							}
					oImg.src = imgPlus.src;
					oTable.style.display = "none";
				}
				
				function nodeIsVisible(Node){
							switch(navigator.family){
								case 'nn4':
									// Nav 4.x code fork...
							var oTable = document.layers["span" + Node];
									break;
								case 'ie4':
									// IE 4/5 code fork...
							var oTable = document.all["span" + Node];
									break;
								case 'gecko':
									// Standards Compliant code fork...
							var oTable = document.getElementById("span" + Node);
									break;
							}
					return (oTable && oTable.style.display == "block");
				}
				
				function toggleNodeVisibility(Node){
					if (nodeIsVisible(Node)){
						hideNode(Node);
					}else{
						showNode(Node);
					}
				}
			</script>
					</head>
		<body>
			<div class="page-body">			
<h2 class="class-name">Class LoggerAutoloader</h2>

<a name="sec-description"></a>
<div class="info-box">
	<div class="info-box-title">Description</div>
	<div class="nav-bar">
					<span class="disabled">Description</span> |
													<a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
						|											<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
						
					</div>
	<div class="info-box-body">
        		<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Class autoloader.</p>
	<ul class="tags">
				<li><span class="field">version:</span> $Revision$</li>
				<li><span class="field">license:</span> <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></li>
			</ul>
		<p class="notes">
			Located in <a class="field" href="_LoggerAutoloader.php.html">/LoggerAutoloader.php</a> (line <span class="field">34</span>)
		</p>
		
				
		<pre></pre>
	
			</div>
</div>



	<a name="sec-var-summary"></a>
	<div class="info-box">
		<div class="info-box-title">Variable Summary</span></div>
		<div class="nav-bar">
			<a href="#sec-description">Description</a> |
						<span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
							| 
									<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
							
								</div>
		<div class="info-box-body">
			<div class="var-summary">
												<div class="var-title">
					static <span class="var-type">mixed</span>
					<a href="#$classes" title="details" class="var-name">$classes</a>
				</div>
																							</div>
		</div>
	</div>

	<a name="sec-method-summary"></a>
	<div class="info-box">
		<div class="info-box-title">Method Summary</span></div>
		<div class="nav-bar">
			<a href="#sec-description">Description</a> |
																		<a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
				 
				|
						<span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
		</div>
		<div class="info-box-body">			
			<div class="method-summary">
										
				<div class="method-definition">
					static 						<span class="method-result">void</span>
										<a href="#autoload" title="details" class="method-name">autoload</a>
											(<span class="var-type">string</span>&nbsp;<span class="var-name">$className</span>)
									</div>
																							</div>
		</div>
	</div>		

	<a name="sec-vars"></a>
	<div class="info-box">
		<div class="info-box-title">Variables</div>
		<div class="nav-bar">
			<a href="#sec-description">Description</a> |
										<a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
						
			
										| 
									<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
							
					</div>
		<div class="info-box-body">
			<a name="var$classes" id="$classes"><!-- --></A>
<div class="evenrow">

	<div class="var-header">
		<span class="var-title">
			static <span class="var-type">mixed</span>
			<span class="var-name">$classes</span>
			 = <span class="var-default">array(
<br />	
<br />		// Base
<br />		'LoggerAppender' =&gt; '/LoggerAppender.php',
<br />		'LoggerAppenderPool' =&gt; '/LoggerAppenderPool.php',
<br />		'LoggerConfigurable' =&gt; '/LoggerConfigurable.php',
<br />		'LoggerConfigurator' =&gt; '/LoggerConfigurator.php',
<br />		'LoggerException' =&gt; '/LoggerException.php',
<br />		'LoggerHierarchy' =&gt; '/LoggerHierarchy.php',
<br />		'LoggerLevel' =&gt; '/LoggerLevel.php',
<br />		'LoggerLocationInfo' =&gt; '/LoggerLocationInfo.php',
<br />		'LoggerLoggingEvent' =&gt; '/LoggerLoggingEvent.php',
<br />		'LoggerMDC' =&gt; '/LoggerMDC.php',
<br />		'LoggerNDC' =&gt; '/LoggerNDC.php',
<br />		'LoggerLayout' =&gt; '/LoggerLayout.php',
<br />		'LoggerReflectionUtils' =&gt; '/LoggerReflectionUtils.php',
<br />		'LoggerRoot' =&gt; '/LoggerRoot.php',
<br />		'LoggerThrowableInformation' =&gt; '/LoggerThrowableInformation.php',
<br />
<br />		// Appenders
<br />		'LoggerAppenderConsole' =&gt; '/appenders/LoggerAppenderConsole.php',
<br />		'LoggerAppenderDailyFile' =&gt; '/appenders/LoggerAppenderDailyFile.php',
<br />		'LoggerAppenderEcho' =&gt; '/appenders/LoggerAppenderEcho.php',
<br />		'LoggerAppenderFile' =&gt; '/appenders/LoggerAppenderFile.php',
<br />		'LoggerAppenderMail' =&gt; '/appenders/LoggerAppenderMail.php',
<br />		'LoggerAppenderMailEvent' =&gt; '/appenders/LoggerAppenderMailEvent.php',
<br />		'LoggerAppenderMongoDB' =&gt; '/appenders/LoggerAppenderMongoDB.php',
<br />		'LoggerAppenderNull' =&gt; '/appenders/LoggerAppenderNull.php',
<br />		'LoggerAppenderPDO' =&gt; '/appenders/LoggerAppenderPDO.php',
<br />		'LoggerAppenderPhp' =&gt; '/appenders/LoggerAppenderPhp.php',
<br />		'LoggerAppenderRollingFile' =&gt; '/appenders/LoggerAppenderRollingFile.php',
<br />		'LoggerAppenderSocket' =&gt; '/appenders/LoggerAppenderSocket.php',
<br />		'LoggerAppenderSyslog' =&gt; '/appenders/LoggerAppenderSyslog.php',
<br />		
<br />		// Configurators
<br />		'LoggerConfigurationAdapter' =&gt; '/configurators/LoggerConfigurationAdapter.php',
<br />		'LoggerConfigurationAdapterINI' =&gt; '/configurators/LoggerConfigurationAdapterINI.php',
<br />		'LoggerConfigurationAdapterPHP' =&gt; '/configurators/LoggerConfigurationAdapterPHP.php',
<br />		'LoggerConfigurationAdapterXML' =&gt; '/configurators/LoggerConfigurationAdapterXML.php',
<br />		'LoggerConfiguratorDefault' =&gt; '/configurators/LoggerConfiguratorDefault.php',
<br />
<br />		// Filters
<br />		'LoggerFilter' =&gt; '/LoggerFilter.php',
<br />		'LoggerFilterDenyAll' =&gt; '/filters/LoggerFilterDenyAll.php',
<br />		'LoggerFilterLevelMatch' =&gt; '/filters/LoggerFilterLevelMatch.php',
<br />		'LoggerFilterLevelRange' =&gt; '/filters/LoggerFilterLevelRange.php',
<br />		'LoggerFilterStringMatch' =&gt; '/filters/LoggerFilterStringMatch.php',
<br />
<br />		// Helpers
<br />		'LoggerFormattingInfo' =&gt; '/helpers/LoggerFormattingInfo.php',
<br />		'LoggerOptionConverter' =&gt; '/helpers/LoggerOptionConverter.php',
<br />		'LoggerPatternParser' =&gt; '/helpers/LoggerPatternParser.php',
<br />		
<br />		// Converters
<br />		'LoggerBasicPatternConverter' =&gt; '/helpers/LoggerBasicPatternConverter.php',
<br />		'LoggerCategoryPatternConverter' =&gt; '/helpers/LoggerCategoryPatternConverter.php',
<br />		'LoggerClassNamePatternConverter' =&gt; '/helpers/LoggerClassNamePatternConverter.php',
<br />		'LoggerDatePatternConverter' =&gt; '/helpers/LoggerDatePatternConverter.php',
<br />		'LoggerLiteralPatternConverter' =&gt; '/helpers/LoggerLiteralPatternConverter.php',
<br />		'LoggerLocationPatternConverter' =&gt; '/helpers/LoggerLocationPatternConverter.php',
<br />		'LoggerMDCPatternConverter' =&gt; '/helpers/LoggerMDCPatternConverter.php',
<br />		'LoggerNamedPatternConverter' =&gt; '/helpers/LoggerNamedPatternConverter.php',
<br />		'LoggerPatternConverter' =&gt; '/helpers/LoggerPatternConverter.php',
<br />
<br />		// Layouts
<br />		'LoggerLayoutHtml' =&gt; '/layouts/LoggerLayoutHtml.php',
<br />		'LoggerLayoutPattern' =&gt; '/layouts/LoggerLayoutPattern.php',
<br />		'LoggerLayoutSerialized' =&gt; '/layouts/LoggerLayoutSerialized.php',
<br />		'LoggerLayoutSimple' =&gt; '/layouts/LoggerLayoutSimple.php',
<br />		'LoggerLayoutTTCC' =&gt; '/layouts/LoggerLayoutTTCC.php',
<br />		'LoggerLayoutXml' =&gt; '/layouts/LoggerLayoutXml.php',
<br />		
<br />		// Renderers
<br />		'LoggerRendererDefault' =&gt; '/renderers/LoggerRendererDefault.php',
<br />		'LoggerRendererException' =&gt; '/renderers/LoggerRendererException.php',
<br />		'LoggerRendererMap' =&gt; '/renderers/LoggerRendererMap.php',
<br />		'LoggerRendererObject' =&gt; '/renderers/LoggerRendererObject.php',
<br />	)</span>			(line <span class="line-number">37</span>)
		</span>
	</div>

	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Maps classnames to files containing the class.</p>
	<ul class="tags">
				<li><span class="field">access:</span> private</li>
			</ul>
	
	
		
		

</div>
						
		</div>
	</div>
	
	<a name="sec-methods"></a>
	<div class="info-box">
		<div class="info-box-title">Methods</div>
		<div class="nav-bar">
			<a href="#sec-description">Description</a> |
															<a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
																	<a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
						
		</div>
		<div class="info-box-body">
			<A NAME='method_detail'></A>
<a name="methodautoload" id="autoload"><!-- --></a>
<div class="oddrow">
	
	<div class="method-header">
		<span class="method-title">static autoload</span> (line <span class="line-number">120</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Loads a class.</p>
	<ul class="tags">
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		static <span class="method-result">void</span>
		<span class="method-name">
			autoload
		</span>
					(<span class="var-type">string</span>&nbsp;<span class="var-name">$className</span>)
			</div>
	
			<ul class="parameters">
					<li>
				<span class="var-type">string</span>
				<span class="var-name">$className</span><span class="var-description">: The name of the class to load.</span>			</li>
				</ul>
		
			
	</div>
						
		</div>
	</div>


	<p class="notes" id="credit">
		Documentation generated on Sat, 18 Feb 2012 22:32:23 +0000 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.3</a>
	</p>
	</div></body>
</html>