26 #require_once 'Zend/Config.php'; 103 if (empty($filename)) {
107 #require_once 'Zend/Config/Exception.php'; 111 $allowModifications =
false;
115 if (isset(
$options[
'allowModifications'])) {
116 $allowModifications = (bool)
$options[
'allowModifications'];
118 if (isset(
$options[
'nestSeparator'])) {
119 $this->_nestSeparator = (string)
$options[
'nestSeparator'];
121 if (isset(
$options[
'skipExtends'])) {
122 $this->_skipExtends = (bool)
$options[
'skipExtends'];
128 if (
null === $section) {
130 $dataArray = array();
131 foreach ($iniArray as $sectionName => $sectionData) {
132 if(!is_array($sectionData)) {
135 $dataArray[$sectionName] = $this->
_processSection($iniArray, $sectionName);
138 parent::__construct($dataArray, $allowModifications);
141 if (!is_array($section)) {
142 $section = array($section);
144 $dataArray = array();
145 foreach ($section as $sectionName) {
146 if (!isset($iniArray[$sectionName])) {
150 #require_once 'Zend/Config/Exception.php'; 156 parent::__construct($dataArray, $allowModifications);
159 $this->_loadedSection = $section;
172 set_error_handler(array($this,
'_loadFileErrorHandler'));
173 $iniArray = parse_ini_file($filename,
true);
174 restore_error_handler();
177 if ($this->_loadFileErrorStr !==
null) {
181 #require_once 'Zend/Config/Exception.php'; 204 foreach ($loaded as $key =>
$data)
206 $pieces = explode($this->_sectionSeparator, $key);
207 $thisSection = trim($pieces[0]);
208 switch (
count($pieces)) {
210 $iniArray[$thisSection] =
$data;
214 $extendedSection = trim($pieces[1]);
215 $iniArray[$thisSection] = array_merge(array(
';extends'=>$extendedSection),
$data);
222 #require_once 'Zend/Config/Exception.php'; 223 throw new Zend_Config_Exception(
"Section '$thisSection' may not extend multiple sections in $filename");
243 $thisSection = $iniArray[$section];
245 foreach ($thisSection as $key =>
$value) {
246 if (strtolower($key) ==
';extends') {
247 if (isset($iniArray[
$value])) {
250 if (!$this->_skipExtends) {
257 #require_once 'Zend/Config/Exception.php'; 279 if (strpos($key, $this->_nestSeparator) !==
false) {
280 $pieces = explode($this->_nestSeparator, $key, 2);
281 if (strlen($pieces[0]) && strlen($pieces[1])) {
282 if (!isset(
$config[$pieces[0]])) {
283 if ($pieces[0] ===
'0' && !empty(
$config)) {
293 #require_once 'Zend/Config/Exception.php'; 301 #require_once 'Zend/Config/Exception.php';
elseif(isset( $params[ 'redirect_parent']))
__construct($filename, $section=null, $options=false)
_processSection($iniArray, $section, $config=array())
_processKey($config, $key, $value)
_assertValidExtend($extendingSection, $extendedSection)
_arrayMergeRecursive($firstArray, $secondArray)