LoggerConfigurationAdapterPHP.php
Current file: /home/ihabunek/apache/log4php/src/main/php/configurators/LoggerConfigurationAdapterPHP.php
Legend: executed not executed dead code

  Coverage
  Classes Functions / Methods Lines
Total
0.00% 0 / 1
0.00% 0 / 1 CRAP
86.67% 13 / 15
LoggerConfigurationAdapterPHP
0.00% 0 / 1
0.00% 0 / 1 6.09
86.67% 13 / 15
 convert($url)
0.00% 0 / 1 6.09
86.67% 13 / 15


       1                 : <?php                                                                                      
       2                 : /**                                                                                        
       3                 :  * Licensed to the Apache Software Foundation (ASF) under one or more                      
       4                 :  * contributor license agreements. See the NOTICE file distributed with                    
       5                 :  * this work for additional information regarding copyright ownership.                     
       6                 :  * The ASF licenses this file to You under the Apache License, Version 2.0                 
       7                 :  * (the "License"); you may not use this file except in compliance with                    
       8                 :  * the License. You may obtain a copy of the License at                                    
       9                 :  *                                                                                         
      10                 :  *       http://www.apache.org/licenses/LICENSE-2.0                                        
      11                 :  *                                                                                         
      12                 :  * Unless required by applicable law or agreed to in writing, software                     
      13                 :  * distributed under the License is distributed on an "AS IS" BASIS,                       
      14                 :  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.                
      15                 :  * See the License for the specific language governing permissions and                     
      16                 :  * limitations under the License.                                                          
      17                 :  *                                                                                         
      18                 :  * @package log4php                                                                        
      19                 :  */                                                                                        
      20                 :                                                                                            
      21                 : /**                                                                                        
      22                 :  * Converts PHP configuration files to a PHP array.                                        
      23                 :  *                                                                                         
      24                 :  * The file should only hold the PHP config array preceded by "return".                    
      25                 :  *                                                                                         
      26                 :  * Example PHP config file:                                                                
      27                 :  * <code>                                                                                  
      28                 :  * <?php                                                                                   
      29                 :  * return array(                                                                           
      30                 :  *   'rootLogger' => array(                                                                
      31                 :  *     'level' => 'info',                                                                  
      32                 :  *     'appenders' => array('default')                                                     
      33                 :  *   ),                                                                                    
      34                 :  *   'appenders' => array(                                                                 
      35                 :  *     'default' => array(                                                                 
      36                 :  *       'class' => 'LoggerAppenderEcho',                                                  
      37                 :  *       'layout' => array(                                                                
      38                 :  *           'class' => 'LoggerLayoutSimple'                                               
      39                 :  *        )                                                                                
      40                 :  *     )                                                                                   
      41                 :  *   )                                                                                     
      42                 :  * )                                                                                       
      43                 :  * ?>                                                                                      
      44                 :  * </code>                                                                                 
      45                 :  *                                                                                         
      46                 :  * @package log4php                                                                        
      47                 :  * @subpackage configurators                                                               
      48                 :  * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0         
      49                 :  * @version $Revision$                                                                     
      50                 :  * @since 2.2                                                                              
      51                 :  */                                                                                        
      52                 : class LoggerConfigurationAdapterPHP implements LoggerConfigurationAdapter                  
      53                 : {                                                                                          
      54                 :     public function convert($url) {                                                        
      55               5 :         if (!file_exists($url)) {                                                          
      56               1 :             throw new LoggerException("File [$url] does not exist.");                      
      57                 :         }                                                                                  
      58                 :                                                                                            
      59                 :         // Load the config file                                                            
      60               4 :         $data = @file_get_contents($url);                                                  
      61               4 :         if ($data === false) {                                                             
      62               0 :             $error = error_get_last();                                                     
      63               0 :             throw new LoggerException("Error loading config file: {$error['message']}");   
      64                 :         }                                                                                  
      65                 :                                                                                            
      66               4 :         $config = @eval('?>' . $data);                                                     
      67                 :                                                                                            
      68               4 :         if ($config === false) {                                                           
      69               1 :             $error = error_get_last();                                                     
      70               1 :             throw new LoggerException("Error parsing configuration: " . $error['message']);
      71                 :         }                                                                                  
      72                 :                                                                                            
      73               3 :         if (empty($config)) {                                                              
      74               1 :             throw new LoggerException("Invalid configuration: empty configuration array.");
      75                 :         }                                                                                  
      76                 :                                                                                            
      77               2 :         if (!is_array($config)) {                                                          
      78               1 :             throw new LoggerException("Invalid configuration: not an array.");             
      79                 :         }                                                                                  
      80                 :                                                                                            
      81               1 :         return $config;                                                                    
      82                 :     }                                                                                      
      83                 : }                                                                                          
      84                 :                                                                                            

Generated by PHP_CodeCoverage 1.1.1 using PHP 5.3.3-7+squeeze3 and PHPUnit 3.6.3 at Sat Feb 18 22:32:39 GMT 2012.