Current file: D:\data\micmap\cgi-bin\tools\pear\pear\Text\Template.php
Legend: executed not executed dead code

  Coverage
  Classes Functions / Methods Lines
Total
0.00%0.00%
0.00% 0 / 1
0.00%0.00%
0.00% 0 / 5 CRAP
0.00%0.00%
0.00% 0 / 25
 
Text_Template
0.00%0.00%
0.00% 0 / 1
0.00%0.00%
0.00% 0 / 5
0.00%0.00%
0.00% 0 / 25
 __construct($file = '')
0.00%0.00%
0.00% 0 / 1 2
0.00%0.00%
0.00% 0 / 2
 setFile($file)
0.00%0.00%
0.00% 0 / 1 12
0.00%0.00%
0.00% 0 / 8
 setVar(array $values, $merge = TRUE)
0.00%0.00%
0.00% 0 / 1 12
0.00%0.00%
0.00% 0 / 4
 render()
0.00%0.00%
0.00% 0 / 1 6
0.00%0.00%
0.00% 0 / 5
 renderTo($target)
0.00%0.00%
0.00% 0 / 1 6
0.00%0.00%
0.00% 0 / 6


       1                 : <?php                                                                         
       2                 : /**                                                                           
       3                 :  * Text_Template                                                              
       4                 :  *                                                                            
       5                 :  * Copyright (c) 2009, Sebastian Bergmann <sb@sebastian-bergmann.de>.         
       6                 :  * All rights reserved.                                                       
       7                 :  *                                                                            
       8                 :  * Redistribution and use in source and binary forms, with or without         
       9                 :  * modification, are permitted provided that the following conditions         
      10                 :  * are met:                                                                   
      11                 :  *                                                                            
      12                 :  *   * Redistributions of source code must retain the above copyright         
      13                 :  *     notice, this list of conditions and the following disclaimer.          
      14                 :  *                                                                            
      15                 :  *   * Redistributions in binary form must reproduce the above copyright      
      16                 :  *     notice, this list of conditions and the following disclaimer in        
      17                 :  *     the documentation and/or other materials provided with the             
      18                 :  *     distribution.                                                          
      19                 :  *                                                                            
      20                 :  *   * Neither the name of Sebastian Bergmann nor the names of his            
      21                 :  *     contributors may be used to endorse or promote products derived        
      22                 :  *     from this software without specific prior written permission.          
      23                 :  *                                                                            
      24                 :  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS        
      25                 :  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT          
      26                 :  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS          
      27                 :  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE             
      28                 :  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,        
      29                 :  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,       
      30                 :  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;           
      31                 :  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER           
      32                 :  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT         
      33                 :  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN          
      34                 :  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE            
      35                 :  * POSSIBILITY OF SUCH DAMAGE.                                                
      36                 :  *                                                                            
      37                 :  * @category   Text                                                           
      38                 :  * @package    Template                                                       
      39                 :  * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>                  
      40                 :  * @copyright  2009 Sebastian Bergmann <sb@sebastian-bergmann.de>             
      41                 :  * @license    http://www.opensource.org/licenses/bsd-license.php  BSD License
      42                 :  * @link       http://www.phpunit.de/                                         
      43                 :  * @since      File available since Release 1.0.0                             
      44                 :  */                                                                           
      45                 :                                                                               
      46                 : /**                                                                           
      47                 :  * A simple template engine.                                                  
      48                 :  *                                                                            
      49                 :  * @category   Text                                                           
      50                 :  * @package    Template                                                       
      51                 :  * @author     Sebastian Bergmann <sb@sebastian-bergmann.de>                  
      52                 :  * @copyright  2009 Sebastian Bergmann <sb@sebastian-bergmann.de>             
      53                 :  * @license    http://www.opensource.org/licenses/bsd-license.php  BSD License
      54                 :  * @version    Release: 1.0.0                                                 
      55                 :  * @link       http://www.phpunit.de/                                         
      56                 :  * @since      Class available since Release 1.0.0                            
      57                 :  */                                                                           
      58                 : class Text_Template                                                           
      59                 : {                                                                             
      60                 :     /**                                                                       
      61                 :      * @var string                                                            
      62                 :      */                                                                       
      63                 :     protected $template = '';                                                 
      64                 :                                                                               
      65                 :     /**                                                                       
      66                 :      * @var array                                                             
      67                 :      */                                                                       
      68                 :     protected $values = array();                                              
      69                 :                                                                               
      70                 :     /**                                                                       
      71                 :      * Constructor.                                                           
      72                 :      *                                                                        
      73                 :      * @param  string $file                                                   
      74                 :      * @throws InvalidArgumentException                                       
      75                 :      */                                                                       
      76                 :     public function __construct($file = '')                                   
      77                 :     {                                                                         
      78               0 :         $this->setFile($file);                                                
      79               0 :     }                                                                         
      80                 :                                                                               
      81                 :     /**                                                                       
      82                 :      * Sets the template file.                                                
      83                 :      *                                                                        
      84                 :      * @param  string $file                                                   
      85                 :      * @throws InvalidArgumentException                                       
      86                 :      */                                                                       
      87                 :     public function setFile($file)                                            
      88                 :     {                                                                         
      89               0 :         $distFile = $file . '.dist';                                          
      90                 :                                                                               
      91               0 :         if (file_exists($file)) {                                             
      92               0 :             $this->template = file_get_contents($file);                       
      93                 :         }                                                                     
      94                 :                                                                               
      95               0 :         else if (file_exists($distFile)) {                                    
      96               0 :             $this->template = file_get_contents($distFile);                   
      97                 :         }                                                                     
      98                 :                                                                               
      99                 :         else {                                                                
     100               0 :             throw new InvalidArgumentException(                               
     101                 :               'Template file could not be loaded.'                            
     102               0 :             );                                                                
     103                 :         }                                                                     
     104               0 :     }                                                                         
     105                 :                                                                               
     106                 :     /**                                                                       
     107                 :      * Sets one or more template variables.                                   
     108                 :      *                                                                        
     109                 :      * @param  array   $values                                                
     110                 :      * @param  boolean $merge                                                 
     111                 :      */                                                                       
     112                 :     public function setVar(array $values, $merge = TRUE)                      
     113                 :     {                                                                         
     114               0 :         if (!$merge || empty($this->values)) {                                
     115               0 :             $this->values = $values;                                          
     116                 :         } else {                                                              
     117               0 :             $this->values = array_merge($this->values, $values);              
     118                 :         }                                                                     
     119               0 :     }                                                                         
     120                 :                                                                               
     121                 :     /**                                                                       
     122                 :      * Renders the template and returns the result.                           
     123                 :      *                                                                        
     124                 :      * @return string                                                         
     125                 :      */                                                                       
     126                 :     public function render()                                                  
     127                 :     {                                                                         
     128               0 :         $keys = array();                                                      
     129                 :                                                                               
     130               0 :         foreach ($this->values as $key => $value) {                           
     131               0 :             $keys[] = '{' . $key . '}';                                       
     132               0 :         }                                                                     
     133                 :                                                                               
     134               0 :         return str_replace($keys, $this->values, $this->template);            
     135                 :     }                                                                         
     136                 :                                                                               
     137                 :     /**                                                                       
     138                 :      * Renders the template and writes the result to a file.                  
     139                 :      *                                                                        
     140                 :      * @param string $target                                                  
     141                 :      */                                                                       
     142                 :     public function renderTo($target)                                         
     143                 :     {                                                                         
     144               0 :         $fp = @fopen($target, 'wt');                                          
     145                 :                                                                               
     146               0 :         if ($fp) {                                                            
     147               0 :             fwrite($fp, $this->render());                                     
     148               0 :             fclose($fp);                                                      
     149                 :         } else {                                                              
     150               0 :             throw new RuntimeException('Could not write to ' . $target . '.');
     151                 :         }                                                                     
     152               0 :     }                                                                         
     153                 : }                                                                             
     154                 : ?>                                                                            

Generated by PHP_CodeCoverage 1.0.0 using PHP 5.3.3 and PHPUnit 3.5.0 at Wed Jan 4 16:32:24 UTC 2012.