From 903ae8a581fac1e6917fc3e31d2ad8fb91df80c3 Mon Sep 17 00:00:00 2001 From: ctrlaltca <> Date: Thu, 12 Jul 2012 11:21:01 +0000 Subject: standardize the use of unix eol; use svn properties to enforce native eol --- framework/Util/TParameterModule.php | 346 ++++++++++++++++++------------------ 1 file changed, 173 insertions(+), 173 deletions(-) (limited to 'framework/Util/TParameterModule.php') diff --git a/framework/Util/TParameterModule.php b/framework/Util/TParameterModule.php index 31f109c1..a142e4ae 100644 --- a/framework/Util/TParameterModule.php +++ b/framework/Util/TParameterModule.php @@ -1,173 +1,173 @@ - - * @link http://www.pradosoft.com/ - * @copyright Copyright © 2005-2012 PradoSoft - * @license http://www.pradosoft.com/license/ - * @version $Id$ - * @package System.Util - */ - -/** - * TParameterModule class - * - * TParameterModule enables loading application parameters from external - * storage other than the application configuration. - * To load parameters from an XML file, configure the module by setting - * its {@link setParameterFile ParameterFile} property. - * Note, the property only accepts a file path in namespace format with - * file extension being '.xml'. The file format is as follows, which is - * similar to the parameter portion in an application configuration, - * - * - * - * - * - * - * - * In addition, any content enclosed within the module tag is also treated - * as parameters, e.g., - * - * - * - * - * - * - * - * If a parameter is defined both in the external file and within the module - * tag, the former takes precedence. - * - * @author Qiang Xue - * @author Carl G. Mathisen - * @version $Id$ - * @package System.Util - * @since 3.0 - */ -class TParameterModule extends TModule -{ - /** - * @deprecated since 3.2 - */ - const PARAM_FILE_EXT='.xml'; - private $_initialized=false; - private $_paramFile=null; - - /** - * Initializes the module by loading parameters. - * @param mixed content enclosed within the module tag - */ - public function init($config) - { - $this->loadParameters($config); - if($this->_paramFile!==null) - { - $configFile = null; - if($this->getApplication()->getConfigurationType()==TApplication::CONFIG_TYPE_XML && ($cache=$this->getApplication()->getCache())!==null) - { - $cacheKey='TParameterModule:'.$this->_paramFile; - if(($configFile=$cache->get($cacheKey))===false) - { - $cacheFile=new TXmlDocument; - $cacheFile->loadFromFile($this->_paramFile); - $cache->set($cacheKey,$cacheFile,0,new TFileCacheDependency($this->_paramFile)); - } - } - else - { - if($this->getApplication()->getConfigurationType()==TApplication::CONFIG_TYPE_PHP) - { - $configFile = include $this->_paramFile; - } - else - { - $configFile=new TXmlDocument; - $configFile->loadFromFile($this->_paramFile); - } - } - $this->loadParameters($configFile); - } - $this->_initialized=true; - } - - /** - * Loads parameters into application. - * @param mixed XML of PHP representation of the parameters - * @throws TConfigurationException if the parameter file format is invalid - */ - protected function loadParameters($config) - { - $parameters=array(); - if(is_array($config)) - { - foreach($config as $id => $parameter) - { - if(is_array($parameter) && isset($parameter['class'])) - { - $properties = isset($parameter['properties'])?$parameter['properties']:array(); - $parameters[$id]=array($parameter['class'],$properties); - } - else - { - $parameters[$id] = $parameter; - } - } - } - else if($config instanceof TXmlElement) - { - foreach($config->getElementsByTagName('parameter') as $node) - { - $properties=$node->getAttributes(); - if(($id=$properties->remove('id'))===null) - throw new TConfigurationException('parametermodule_parameterid_required'); - if(($type=$properties->remove('class'))===null) - { - if(($value=$properties->remove('value'))===null) - $parameters[$id]=$node; - else - $parameters[$id]=$value; - } - else - $parameters[$id]=array($type,$properties->toArray()); - } - } - - $appParams=$this->getApplication()->getParameters(); - foreach($parameters as $id=>$parameter) - { - if(is_array($parameter)) - { - $component=Prado::createComponent($parameter[0]); - foreach($parameter[1] as $name=>$value) - $component->setSubProperty($name,$value); - $appParams->add($id,$component); - } - else - $appParams->add($id,$parameter); - } - } - - /** - * @return string the parameter file path - */ - public function getParameterFile() - { - return $this->_paramFile; - } - - /** - * @param string the parameter file path. It must be in namespace format - * and the file extension is '.xml'. - * @throws TInvalidOperationException if the module is initialized - * @throws TConfigurationException if the file is invalid - */ - public function setParameterFile($value) - { - if($this->_initialized) - throw new TInvalidOperationException('parametermodule_parameterfile_unchangeable'); - else if(($this->_paramFile=Prado::getPathOfNamespace($value,$this->getApplication()->getConfigurationFileExt()))===null || !is_file($this->_paramFile)) - throw new TConfigurationException('parametermodule_parameterfile_invalid',$value); - } -} - + + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2005-2012 PradoSoft + * @license http://www.pradosoft.com/license/ + * @version $Id$ + * @package System.Util + */ + +/** + * TParameterModule class + * + * TParameterModule enables loading application parameters from external + * storage other than the application configuration. + * To load parameters from an XML file, configure the module by setting + * its {@link setParameterFile ParameterFile} property. + * Note, the property only accepts a file path in namespace format with + * file extension being '.xml'. The file format is as follows, which is + * similar to the parameter portion in an application configuration, + * + * + * + * + * + * + * + * In addition, any content enclosed within the module tag is also treated + * as parameters, e.g., + * + * + * + * + * + * + * + * If a parameter is defined both in the external file and within the module + * tag, the former takes precedence. + * + * @author Qiang Xue + * @author Carl G. Mathisen + * @version $Id$ + * @package System.Util + * @since 3.0 + */ +class TParameterModule extends TModule +{ + /** + * @deprecated since 3.2 + */ + const PARAM_FILE_EXT='.xml'; + private $_initialized=false; + private $_paramFile=null; + + /** + * Initializes the module by loading parameters. + * @param mixed content enclosed within the module tag + */ + public function init($config) + { + $this->loadParameters($config); + if($this->_paramFile!==null) + { + $configFile = null; + if($this->getApplication()->getConfigurationType()==TApplication::CONFIG_TYPE_XML && ($cache=$this->getApplication()->getCache())!==null) + { + $cacheKey='TParameterModule:'.$this->_paramFile; + if(($configFile=$cache->get($cacheKey))===false) + { + $cacheFile=new TXmlDocument; + $cacheFile->loadFromFile($this->_paramFile); + $cache->set($cacheKey,$cacheFile,0,new TFileCacheDependency($this->_paramFile)); + } + } + else + { + if($this->getApplication()->getConfigurationType()==TApplication::CONFIG_TYPE_PHP) + { + $configFile = include $this->_paramFile; + } + else + { + $configFile=new TXmlDocument; + $configFile->loadFromFile($this->_paramFile); + } + } + $this->loadParameters($configFile); + } + $this->_initialized=true; + } + + /** + * Loads parameters into application. + * @param mixed XML of PHP representation of the parameters + * @throws TConfigurationException if the parameter file format is invalid + */ + protected function loadParameters($config) + { + $parameters=array(); + if(is_array($config)) + { + foreach($config as $id => $parameter) + { + if(is_array($parameter) && isset($parameter['class'])) + { + $properties = isset($parameter['properties'])?$parameter['properties']:array(); + $parameters[$id]=array($parameter['class'],$properties); + } + else + { + $parameters[$id] = $parameter; + } + } + } + else if($config instanceof TXmlElement) + { + foreach($config->getElementsByTagName('parameter') as $node) + { + $properties=$node->getAttributes(); + if(($id=$properties->remove('id'))===null) + throw new TConfigurationException('parametermodule_parameterid_required'); + if(($type=$properties->remove('class'))===null) + { + if(($value=$properties->remove('value'))===null) + $parameters[$id]=$node; + else + $parameters[$id]=$value; + } + else + $parameters[$id]=array($type,$properties->toArray()); + } + } + + $appParams=$this->getApplication()->getParameters(); + foreach($parameters as $id=>$parameter) + { + if(is_array($parameter)) + { + $component=Prado::createComponent($parameter[0]); + foreach($parameter[1] as $name=>$value) + $component->setSubProperty($name,$value); + $appParams->add($id,$component); + } + else + $appParams->add($id,$parameter); + } + } + + /** + * @return string the parameter file path + */ + public function getParameterFile() + { + return $this->_paramFile; + } + + /** + * @param string the parameter file path. It must be in namespace format + * and the file extension is '.xml'. + * @throws TInvalidOperationException if the module is initialized + * @throws TConfigurationException if the file is invalid + */ + public function setParameterFile($value) + { + if($this->_initialized) + throw new TInvalidOperationException('parametermodule_parameterfile_unchangeable'); + else if(($this->_paramFile=Prado::getPathOfNamespace($value,$this->getApplication()->getConfigurationFileExt()))===null || !is_file($this->_paramFile)) + throw new TConfigurationException('parametermodule_parameterfile_invalid',$value); + } +} + -- cgit v1.2.3