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)