mkoh.net beta!

Source

Source for: 'library/MkohZf/Config.php'


<?php
require_once('Zend/Config.php');
class MkohZf_Config extends Zend_Config 
{
	public function __construct($configDir) 
	{
		$configArray = null;
		if($configDir && is_readable($configDir)) {
			$configArray = $this->_parseDirectory($configDir);
			parent::__construct($configArray);
		} else {
			throw new MkohZf_Exception("Config dir '{$configDir}' not valid");
		}
			
	}
	
	private function _parseDirectory($configDir)
	{
		$distData = array();
		$overrideData = array();
		
		$arrFiles = @scandir($configDir);
		if(false === $arrFiles) throw new MkohZf_Exception("Unable to parse Config dir '{$configDir}'");
		
		foreach($arrFiles as $fileName) {
			$ext = substr($fileName,-4);
			if('.php' == $ext) {
				$data = include($configDir.'/'.$fileName);
				if(false !== strpos($fileName, '.dist')) {
					$distData[substr($fileName,0,-9)] = $data;
				} else {
					$overrideData[substr($fileName,0,-4)] = $data;
				}	
			}
		}
		foreach($overrideData as $configName => $configArray) {
			foreach($configArray as $key => $value) {
				$distData[$configName][$key] = $value;
			}
		}
		return $distData;	
	}
}

Comments

No comments, why not write one?

Add a comment

             ___      _____    _    _     ______    ______  
  ____      / _ \\   |__  //  | || | ||  /_   _//  /_   _// 
 |    \\   / //\ \\    / //   | || | ||    | ||     -| ||-  
 | [] ||  |  ___  ||  / //__  | \\_/ ||   _| ||     _| ||_  
 |  __//  |_||  |_|| /_____||  \____//   /__//     /_____// 
 |_|`-`   `-`   `-`  `-----`    `---`    `--`      `-----`  
 `-`