<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>LoggerConfigurationAdapterPHP.php</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <link rel="stylesheet" type="text/css" href="container.css">
    <script type="text/javascript" src="yahoo-dom-event.js"></script>
    <script type="text/javascript" src="container-min.js"></script>
  </head>

  <body class="yui-skin-sam">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr><td class="title">LoggerConfigurationAdapterPHP.php</td></tr>
      <tr><td class="ruler"><img src="glass.png" width="3" height="3" alt=""></td></tr>

      <tr>
        <td width="100%">
          <table cellpadding="1" border="0" width="100%">
            <tr>
              <td class="headerItem" width="20%">Current file:</td>
              <td class="headerValue" width="80%"><a href="index.html">/home/ihabunek/apache/log4php/src/main/php</a>/<a href="configurators.html">configurators</a>/<a href="configurators_LoggerConfigurationAdapterPHP.php.html">LoggerConfigurationAdapterPHP.php</a></td>
            </tr>
            <tr>
              <td class="legendItem" width="20%">Legend:</td>
              <td class="legendValue" width="80%">
                <span class="legendCov">executed</span>
                <span class="legendNoCov">not executed</span>
                <span class="legendDeadCode">dead code</span>
              </td>
            </tr>
          </table>
        </td>
      </tr>

      <tr>
        <td class="ruler"><img src="glass.png" width="3" height="3" alt=""></td>
      </tr>
    </table>

    <br />

    <center>
      <table width="90%" cellpadding="2" cellspacing="1" border="0">
        <tr>
          <td class="tableHead" width="30%">&nbsp;</td>
          <td class="tableHead" colspan="10">Coverage</td>
        </tr>
        <tr>
          <td class="tableHead">&nbsp;</td>
          <td class="tableHead" colspan="3">Classes</td>
          <td class="tableHead" colspan="4">Functions / Methods</td>
          <td class="tableHead" colspan="3">Lines</td>
        </tr>
        <tr>
          <td class="coverDirectory">Total</td>
          <td class="coverBar">
             <div class="coverBarOutline" title="0.00%">
                <div class="size scarlet_red"  style="width:0%" title="0.00%"></div>
             </div>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="coverBar">
            <div class="coverBarOutline" title="0.00%">
                <div class="size scarlet_red"  style="width:0%" title="0.00%"></div>
            </div>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap"><acronym title="Change Risk Anti-Patterns (CRAP) Index">CRAP</acronym></td>
          <td class="coverBar">
            <div class="coverBarOutline" title="86.67%">
                <div class="size chameleon"  style="width:86.666666666667%" title="86.67%"></div>
            </div>
          </td>
          <td class="coverPerHi">86.67%</td>
          <td class="coverNumHi">13 / 15</td>
        </tr>

        <tr>
          <td class="coverDirectory">LoggerConfigurationAdapterPHP</td>
          <td class="coverBar">
             <div class="coverBarOutline" title="0.00%">
                <div class="size scarlet_red"  style="width:0%" title="0.00%"></div>
             </div>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="coverBar">
            <div class="coverBarOutline" title="0.00%">
                <div class="size scarlet_red"  style="width:0%" title="0.00%"></div>
            </div>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">6.09</td>
          <td class="coverBar">
            <div class="coverBarOutline" title="86.67%">
                <div class="size chameleon"  style="width:86.666666666667%" title="86.67%"></div>
            </div>
          </td>
          <td class="coverPerHi">86.67%</td>
          <td class="coverNumHi">13 / 15</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#54">convert($url)</a></td>
          <td class="coverBar">
            <div class="coverBarOutline" title="0.00%">
                <div class="size scarlet_red"  style="width:0%" title="0.00%"></div>
            </div>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">6.09</td>
          <td class="coverBar">
              <div class="coverBarOutline" title="86.67%">
                  <div class="size chameleon"  style="width:86.666666666667%" title="86.67%"></div>
              </div>
          </td>
          <td class="coverPerHi">86.67%</td>
          <td class="coverNumHi">13 / 15</td>
        </tr>


      </table>
    </center>

    <br />

    <table cellpadding="0" cellspacing="0" border="0">
      <tr>
        <td><br /></td>
      </tr>
      <tr>
        <td>
<pre class="source">
<span class="lineNum" id="container1"><a name="1"></a><a href="#1" id="line1">       1</a> </span>                : &lt;?php                                                                                      
<span class="lineNum" id="container2"><a name="2"></a><a href="#2" id="line2">       2</a> </span>                : /**                                                                                        
<span class="lineNum" id="container3"><a name="3"></a><a href="#3" id="line3">       3</a> </span>                :  * Licensed to the Apache Software Foundation (ASF) under one or more                      
<span class="lineNum" id="container4"><a name="4"></a><a href="#4" id="line4">       4</a> </span>                :  * contributor license agreements. See the NOTICE file distributed with                    
<span class="lineNum" id="container5"><a name="5"></a><a href="#5" id="line5">       5</a> </span>                :  * this work for additional information regarding copyright ownership.                     
<span class="lineNum" id="container6"><a name="6"></a><a href="#6" id="line6">       6</a> </span>                :  * The ASF licenses this file to You under the Apache License, Version 2.0                 
<span class="lineNum" id="container7"><a name="7"></a><a href="#7" id="line7">       7</a> </span>                :  * (the &quot;License&quot;); you may not use this file except in compliance with                    
<span class="lineNum" id="container8"><a name="8"></a><a href="#8" id="line8">       8</a> </span>                :  * the License. You may obtain a copy of the License at                                    
<span class="lineNum" id="container9"><a name="9"></a><a href="#9" id="line9">       9</a> </span>                :  *                                                                                         
<span class="lineNum" id="container10"><a name="10"></a><a href="#10" id="line10">      10</a> </span>                :  *       http://www.apache.org/licenses/LICENSE-2.0                                        
<span class="lineNum" id="container11"><a name="11"></a><a href="#11" id="line11">      11</a> </span>                :  *                                                                                         
<span class="lineNum" id="container12"><a name="12"></a><a href="#12" id="line12">      12</a> </span>                :  * Unless required by applicable law or agreed to in writing, software                     
<span class="lineNum" id="container13"><a name="13"></a><a href="#13" id="line13">      13</a> </span>                :  * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,                       
<span class="lineNum" id="container14"><a name="14"></a><a href="#14" id="line14">      14</a> </span>                :  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.                
<span class="lineNum" id="container15"><a name="15"></a><a href="#15" id="line15">      15</a> </span>                :  * See the License for the specific language governing permissions and                     
<span class="lineNum" id="container16"><a name="16"></a><a href="#16" id="line16">      16</a> </span>                :  * limitations under the License.                                                          
<span class="lineNum" id="container17"><a name="17"></a><a href="#17" id="line17">      17</a> </span>                :  *                                                                                         
<span class="lineNum" id="container18"><a name="18"></a><a href="#18" id="line18">      18</a> </span>                :  * @package log4php                                                                        
<span class="lineNum" id="container19"><a name="19"></a><a href="#19" id="line19">      19</a> </span>                :  */                                                                                        
<span class="lineNum" id="container20"><a name="20"></a><a href="#20" id="line20">      20</a> </span>                :                                                                                            
<span class="lineNum" id="container21"><a name="21"></a><a href="#21" id="line21">      21</a> </span>                : /**                                                                                        
<span class="lineNum" id="container22"><a name="22"></a><a href="#22" id="line22">      22</a> </span>                :  * Converts PHP configuration files to a PHP array.                                        
<span class="lineNum" id="container23"><a name="23"></a><a href="#23" id="line23">      23</a> </span>                :  *                                                                                         
<span class="lineNum" id="container24"><a name="24"></a><a href="#24" id="line24">      24</a> </span>                :  * The file should only hold the PHP config array preceded by &quot;return&quot;.                    
<span class="lineNum" id="container25"><a name="25"></a><a href="#25" id="line25">      25</a> </span>                :  *                                                                                         
<span class="lineNum" id="container26"><a name="26"></a><a href="#26" id="line26">      26</a> </span>                :  * Example PHP config file:                                                                
<span class="lineNum" id="container27"><a name="27"></a><a href="#27" id="line27">      27</a> </span>                :  * &lt;code&gt;                                                                                  
<span class="lineNum" id="container28"><a name="28"></a><a href="#28" id="line28">      28</a> </span>                :  * &lt;?php                                                                                   
<span class="lineNum" id="container29"><a name="29"></a><a href="#29" id="line29">      29</a> </span>                :  * return array(                                                                           
<span class="lineNum" id="container30"><a name="30"></a><a href="#30" id="line30">      30</a> </span>                :  *   'rootLogger' =&gt; array(                                                                
<span class="lineNum" id="container31"><a name="31"></a><a href="#31" id="line31">      31</a> </span>                :  *     'level' =&gt; 'info',                                                                  
<span class="lineNum" id="container32"><a name="32"></a><a href="#32" id="line32">      32</a> </span>                :  *     'appenders' =&gt; array('default')                                                     
<span class="lineNum" id="container33"><a name="33"></a><a href="#33" id="line33">      33</a> </span>                :  *   ),                                                                                    
<span class="lineNum" id="container34"><a name="34"></a><a href="#34" id="line34">      34</a> </span>                :  *   'appenders' =&gt; array(                                                                 
<span class="lineNum" id="container35"><a name="35"></a><a href="#35" id="line35">      35</a> </span>                :  *     'default' =&gt; array(                                                                 
<span class="lineNum" id="container36"><a name="36"></a><a href="#36" id="line36">      36</a> </span>                :  *       'class' =&gt; 'LoggerAppenderEcho',                                                  
<span class="lineNum" id="container37"><a name="37"></a><a href="#37" id="line37">      37</a> </span>                :  *       'layout' =&gt; array(                                                                
<span class="lineNum" id="container38"><a name="38"></a><a href="#38" id="line38">      38</a> </span>                :  *           'class' =&gt; 'LoggerLayoutSimple'                                               
<span class="lineNum" id="container39"><a name="39"></a><a href="#39" id="line39">      39</a> </span>                :  *        )                                                                                
<span class="lineNum" id="container40"><a name="40"></a><a href="#40" id="line40">      40</a> </span>                :  *     )                                                                                   
<span class="lineNum" id="container41"><a name="41"></a><a href="#41" id="line41">      41</a> </span>                :  *   )                                                                                     
<span class="lineNum" id="container42"><a name="42"></a><a href="#42" id="line42">      42</a> </span>                :  * )                                                                                       
<span class="lineNum" id="container43"><a name="43"></a><a href="#43" id="line43">      43</a> </span>                :  * ?&gt;                                                                                      
<span class="lineNum" id="container44"><a name="44"></a><a href="#44" id="line44">      44</a> </span>                :  * &lt;/code&gt;                                                                                 
<span class="lineNum" id="container45"><a name="45"></a><a href="#45" id="line45">      45</a> </span>                :  *                                                                                         
<span class="lineNum" id="container46"><a name="46"></a><a href="#46" id="line46">      46</a> </span>                :  * @package log4php                                                                        
<span class="lineNum" id="container47"><a name="47"></a><a href="#47" id="line47">      47</a> </span>                :  * @subpackage configurators                                                               
<span class="lineNum" id="container48"><a name="48"></a><a href="#48" id="line48">      48</a> </span>                :  * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0         
<span class="lineNum" id="container49"><a name="49"></a><a href="#49" id="line49">      49</a> </span>                :  * @version $Revision$                                                                     
<span class="lineNum" id="container50"><a name="50"></a><a href="#50" id="line50">      50</a> </span>                :  * @since 2.2                                                                              
<span class="lineNum" id="container51"><a name="51"></a><a href="#51" id="line51">      51</a> </span>                :  */                                                                                        
<span class="lineNum" id="container52"><a name="52"></a><a href="#52" id="line52">      52</a> </span>                : class LoggerConfigurationAdapterPHP implements LoggerConfigurationAdapter                  
<span class="lineNum" id="container53"><a name="53"></a><a href="#53" id="line53">      53</a> </span>                : {                                                                                          
<span class="lineNum" id="container54"><a name="54"></a><a href="#54" id="line54">      54</a> </span>                :     public function convert($url) {                                                        
<span class="lineNum" id="container55"><a name="55"></a><a href="#55" id="line55">      55</a> </span><span class="lineCov">              5 :         if (!file_exists($url)) {                                                          </span>
<span class="lineNum" id="container56"><a name="56"></a><a href="#56" id="line56">      56</a> </span><span class="lineCov">              1 :             throw new LoggerException(&quot;File [$url] does not exist.&quot;);                      </span>
<span class="lineNum" id="container57"><a name="57"></a><a href="#57" id="line57">      57</a> </span>                :         }                                                                                  
<span class="lineNum" id="container58"><a name="58"></a><a href="#58" id="line58">      58</a> </span>                :                                                                                            
<span class="lineNum" id="container59"><a name="59"></a><a href="#59" id="line59">      59</a> </span>                :         // Load the config file                                                            
<span class="lineNum" id="container60"><a name="60"></a><a href="#60" id="line60">      60</a> </span><span class="lineCov">              4 :         $data = @file_get_contents($url);                                                  </span>
<span class="lineNum" id="container61"><a name="61"></a><a href="#61" id="line61">      61</a> </span><span class="lineCov">              4 :         if ($data === false) {                                                             </span>
<span class="lineNum" id="container62"><a name="62"></a><a href="#62" id="line62">      62</a> </span><span class="lineNoCov">              0 :             $error = error_get_last();                                                     </span>
<span class="lineNum" id="container63"><a name="63"></a><a href="#63" id="line63">      63</a> </span><span class="lineNoCov">              0 :             throw new LoggerException(&quot;Error loading config file: {$error['message']}&quot;);   </span>
<span class="lineNum" id="container64"><a name="64"></a><a href="#64" id="line64">      64</a> </span>                :         }                                                                                  
<span class="lineNum" id="container65"><a name="65"></a><a href="#65" id="line65">      65</a> </span>                :                                                                                            
<span class="lineNum" id="container66"><a name="66"></a><a href="#66" id="line66">      66</a> </span><span class="lineCov">              4 :         $config = @eval('?&gt;' . $data);                                                     </span>
<span class="lineNum" id="container67"><a name="67"></a><a href="#67" id="line67">      67</a> </span>                :                                                                                            
<span class="lineNum" id="container68"><a name="68"></a><a href="#68" id="line68">      68</a> </span><span class="lineCov">              4 :         if ($config === false) {                                                           </span>
<span class="lineNum" id="container69"><a name="69"></a><a href="#69" id="line69">      69</a> </span><span class="lineCov">              1 :             $error = error_get_last();                                                     </span>
<span class="lineNum" id="container70"><a name="70"></a><a href="#70" id="line70">      70</a> </span><span class="lineCov">              1 :             throw new LoggerException(&quot;Error parsing configuration: &quot; . $error['message']);</span>
<span class="lineNum" id="container71"><a name="71"></a><a href="#71" id="line71">      71</a> </span>                :         }                                                                                  
<span class="lineNum" id="container72"><a name="72"></a><a href="#72" id="line72">      72</a> </span>                :                                                                                            
<span class="lineNum" id="container73"><a name="73"></a><a href="#73" id="line73">      73</a> </span><span class="lineCov">              3 :         if (empty($config)) {                                                              </span>
<span class="lineNum" id="container74"><a name="74"></a><a href="#74" id="line74">      74</a> </span><span class="lineCov">              1 :             throw new LoggerException(&quot;Invalid configuration: empty configuration array.&quot;);</span>
<span class="lineNum" id="container75"><a name="75"></a><a href="#75" id="line75">      75</a> </span>                :         }                                                                                  
<span class="lineNum" id="container76"><a name="76"></a><a href="#76" id="line76">      76</a> </span>                :                                                                                            
<span class="lineNum" id="container77"><a name="77"></a><a href="#77" id="line77">      77</a> </span><span class="lineCov">              2 :         if (!is_array($config)) {                                                          </span>
<span class="lineNum" id="container78"><a name="78"></a><a href="#78" id="line78">      78</a> </span><span class="lineCov">              1 :             throw new LoggerException(&quot;Invalid configuration: not an array.&quot;);             </span>
<span class="lineNum" id="container79"><a name="79"></a><a href="#79" id="line79">      79</a> </span>                :         }                                                                                  
<span class="lineNum" id="container80"><a name="80"></a><a href="#80" id="line80">      80</a> </span>                :                                                                                            
<span class="lineNum" id="container81"><a name="81"></a><a href="#81" id="line81">      81</a> </span><span class="lineCov">              1 :         return $config;                                                                    </span>
<span class="lineNum" id="container82"><a name="82"></a><a href="#82" id="line82">      82</a> </span>                :     }                                                                                      
<span class="lineNum" id="container83"><a name="83"></a><a href="#83" id="line83">      83</a> </span>                : }                                                                                          
<span class="lineNum" id="container84"><a name="84"></a><a href="#84" id="line84">      84</a> </span>                :                                                                                            

</pre>
        </td>
      </tr>
    </table>

    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr><td class="ruler"><img src="glass.png" width="3" height="3" alt=""></td></tr>
      <tr><td class="versionInfo">Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 1.1.1</a> using <a href="http://www.php.net/" target="_top">PHP 5.3.3-7+squeeze3</a> and PHPUnit 3.6.3 at Sat Feb 18 22:32:39 GMT 2012.</td></tr>
    </table>

    <br />

    <script type="text/javascript">
      //<![CDATA[
      $E = YAHOO.util.Event;
      YAHOO.namespace("phpunit.container");
      YAHOO.phpunit.container.panelsData = {
        "panel55": {
          "header": "5 tests cover line 55",
          "body": "<ul><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testConfig</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testNonExistantFileWarning</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testInvalidFileWarning</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testEmptyConfigWarning</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testInvalidConfigWarning</li></ul>",
          "footer": ""
        },
        "panel56": {
          "header": "1 test covers line 56",
          "body": "<ul><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testNonExistantFileWarning</li></ul>",
          "footer": ""
        },
        "panel60": {
          "header": "4 tests cover line 60",
          "body": "<ul><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testConfig</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testInvalidFileWarning</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testEmptyConfigWarning</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testInvalidConfigWarning</li></ul>",
          "footer": ""
        },
        "panel61": {
          "header": "4 tests cover line 61",
          "body": "<ul><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testConfig</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testInvalidFileWarning</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testEmptyConfigWarning</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testInvalidConfigWarning</li></ul>",
          "footer": ""
        },
        "panel66": {
          "header": "4 tests cover line 66",
          "body": "<ul><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testConfig</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testInvalidFileWarning</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testEmptyConfigWarning</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testInvalidConfigWarning</li></ul>",
          "footer": ""
        },
        "panel68": {
          "header": "4 tests cover line 68",
          "body": "<ul><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testConfig</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testInvalidFileWarning</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testEmptyConfigWarning</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testInvalidConfigWarning</li></ul>",
          "footer": ""
        },
        "panel69": {
          "header": "1 test covers line 69",
          "body": "<ul><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testInvalidFileWarning</li></ul>",
          "footer": ""
        },
        "panel70": {
          "header": "1 test covers line 70",
          "body": "<ul><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testInvalidFileWarning</li></ul>",
          "footer": ""
        },
        "panel73": {
          "header": "3 tests cover line 73",
          "body": "<ul><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testConfig</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testEmptyConfigWarning</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testInvalidConfigWarning</li></ul>",
          "footer": ""
        },
        "panel74": {
          "header": "1 test covers line 74",
          "body": "<ul><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testEmptyConfigWarning</li></ul>",
          "footer": ""
        },
        "panel77": {
          "header": "2 tests cover line 77",
          "body": "<ul><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testConfig</li><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testInvalidConfigWarning</li></ul>",
          "footer": ""
        },
        "panel78": {
          "header": "1 test covers line 78",
          "body": "<ul><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testInvalidConfigWarning</li></ul>",
          "footer": ""
        },
        "panel81": {
          "header": "1 test covers line 81",
          "body": "<ul><li class=\"testPassed\">LoggerConfigurationAdapterPHPTest::testConfig</li></ul>",
          "footer": ""
        },
      "dummy": ""
      };

      YAHOO.phpunit.container.prepare = function (e) {
        var elemId = $E.getTarget(e).id;
        var line = elemId.substr(4);
        var panelId = "panel" + line;
        var containerId = "container" + line;

        var panelData = YAHOO.phpunit.container.panelsData[panelId];

        var panel = new YAHOO.widget.Panel(panelId, { visible:false, draggable:false, close:true } );
        panel.setHeader(panelData["header"]);
        panel.setBody(panelData["body"]);
        panel.setFooter(panelData["footer"]);
        panel.render(containerId);

        $E.addListener(elemId, "click", panel.show, panel, true);
        $E.removeListener(elemId, "mouseover");
      };

      function init() {
        var ypc = YAHOO.phpunit.container;
        for (var panelId in ypc.panelsData) {
          var elemId = "line" + panelId.substr(5);
          $E.addListener(elemId, "mouseover", ypc.prepare);
        }
      }

      $E.addListener(window, "load", init);
      //]]>
    </script>
  </body>
</html>
