[ Index ]
 

Code source de Symfony 1.0.0

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/lib/vendor/phing/filters/util/ -> IniFileTokenReader.php (source)

   1  <?php
   2  /*
   3   *  $Id: IniFileTokenReader.php 3076 2006-12-18 08:52:12Z fabien $
   4   *
   5   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
   6   * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
   7   * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
   8   * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
   9   * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  10   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  11   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  12   * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  13   * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  14   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  15   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  16   *
  17   * This software consists of voluntary contributions made by many individuals
  18   * and is licensed under the LGPL. For more information please see
  19   * <http://phing.info>.
  20  */
  21  
  22  include_once 'phing/types/TokenReader.php';
  23  include_once 'phing/system/io/IOException.php';
  24  include_once 'phing/filters/ReplaceTokens.php'; // For class Token
  25  
  26  /**
  27   * Class that allows reading tokens from INI files.
  28   * 
  29   * @author    Manuel Holtgewe
  30   * @version   $Revision: 1.7 $
  31   * @package   phing.filters.util
  32   */
  33  class IniFileTokenReader extends TokenReader {
  34  
  35      /**
  36       * Holds the path to the INI file that is to be read.
  37       * @var object  Reference to a PhingFile Object representing
  38       *              the path to the INI file.
  39       */
  40      private $file = null;
  41  
  42      /**
  43       * @var string  Sets the section to load from the INI file.
  44       *              if omitted, all sections are loaded.
  45       */
  46      private $section = null;
  47  
  48      /**
  49       * Reads the next token from the INI file
  50       *
  51       * @throws  IOException     On error
  52       */
  53      function readToken() {
  54          if ($this->file === null) {
  55              throw new BuildException("No File set for IniFileTokenReader");
  56          }
  57  
  58          static $tokens = null;
  59          if ($tokens === null) {
  60              $tokens = array();
  61              $arr = parse_ini_file($this->file->getAbsolutePath(), true);
  62              if ($this->section === null) {
  63                  foreach ($arr as $sec_name => $values) {
  64                      foreach($arr[$sec_name] as $key => $value) {
  65                          $tok = new Token;
  66                          $tok->setKey($key);
  67                          $tok->setValue($value);
  68                          $tokens[] = $tok;
  69                      }
  70                  }
  71              } else if (isset($arr[$this->section])) {
  72                  foreach ($arr[$this->section] as $key => $value) {
  73                      $tok = new Token;
  74                      $tok->setKey($key);
  75                      $tok->setValue($value);
  76                      $tokens[] = $tok;
  77                  }
  78              }
  79          }
  80  
  81          if (count($tokens) > 0) {
  82              return array_pop($tokens);
  83          } else
  84              return null;
  85      }
  86      
  87      function setFile(PhingFile $file) {
  88          $this->file = $file;
  89      }
  90  
  91      function setSection($str) {
  92          $this->section = (string) $str;
  93      }
  94  }
  95  
  96  ?>


Généré le : Fri Mar 16 22:42:14 2007 par Balluche grâce à PHPXref 0.7