Config.php.html 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Code Coverage for /win/work/Project/ecom/core/models/Config.php</title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <link href="../css/bootstrap.min.css" rel="stylesheet">
  8. <link href="../css/style.css" rel="stylesheet">
  9. <!--[if lt IE 9]>
  10. <script src="../js/html5shiv.min.js"></script>
  11. <script src="../js/respond.min.js"></script>
  12. <![endif]-->
  13. </head>
  14. <body>
  15. <header>
  16. <div class="container">
  17. <div class="row">
  18. <div class="col-md-12">
  19. <ol class="breadcrumb">
  20. <li><a href="../index.html">/win/work/Project/ecom/core</a></li>
  21. <li><a href="index.html">models</a></li>
  22. <li class="active">Config.php</li>
  23. </ol>
  24. </div>
  25. </div>
  26. </div>
  27. </header>
  28. <div class="container">
  29. <table class="table table-bordered">
  30. <thead>
  31. <tr>
  32. <td>&nbsp;</td>
  33. <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td>
  34. </tr>
  35. <tr>
  36. <td>&nbsp;</td>
  37. <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td>
  38. <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td>
  39. <td colspan="3"><div align="center"><strong>Lines</strong></div></td>
  40. </tr>
  41. </thead>
  42. <tbody>
  43. <tr>
  44. <td class="danger">Total</td>
  45. <td class="danger big"> <div class="progress">
  46. <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
  47. <span class="sr-only">0.00% covered (danger)</span>
  48. </div>
  49. </div>
  50. </td>
  51. <td class="danger small"><div align="right">0.00%</div></td>
  52. <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
  53. <td class="danger big"> <div class="progress">
  54. <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="33.33" aria-valuemin="0" aria-valuemax="100" style="width: 33.33%">
  55. <span class="sr-only">33.33% covered (danger)</span>
  56. </div>
  57. </div>
  58. </td>
  59. <td class="danger small"><div align="right">33.33%</div></td>
  60. <td class="danger small"><div align="right">1&nbsp;/&nbsp;3</div></td>
  61. <td class="danger small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
  62. <td class="danger big"> <div class="progress">
  63. <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="46.43" aria-valuemin="0" aria-valuemax="100" style="width: 46.43%">
  64. <span class="sr-only">46.43% covered (danger)</span>
  65. </div>
  66. </div>
  67. </td>
  68. <td class="danger small"><div align="right">46.43%</div></td>
  69. <td class="danger small"><div align="right">13&nbsp;/&nbsp;28</div></td>
  70. </tr>
  71. <tr>
  72. <td class="danger">Config</td>
  73. <td class="danger big"> <div class="progress">
  74. <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
  75. <span class="sr-only">0.00% covered (danger)</span>
  76. </div>
  77. </div>
  78. </td>
  79. <td class="danger small"><div align="right">0.00%</div></td>
  80. <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
  81. <td class="danger big"> <div class="progress">
  82. <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="33.33" aria-valuemin="0" aria-valuemax="100" style="width: 33.33%">
  83. <span class="sr-only">33.33% covered (danger)</span>
  84. </div>
  85. </div>
  86. </td>
  87. <td class="danger small"><div align="right">33.33%</div></td>
  88. <td class="danger small"><div align="right">1&nbsp;/&nbsp;3</div></td>
  89. <td class="danger small">21.45</td>
  90. <td class="danger big"> <div class="progress">
  91. <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="46.43" aria-valuemin="0" aria-valuemax="100" style="width: 46.43%">
  92. <span class="sr-only">46.43% covered (danger)</span>
  93. </div>
  94. </div>
  95. </td>
  96. <td class="danger small"><div align="right">46.43%</div></td>
  97. <td class="danger small"><div align="right">13&nbsp;/&nbsp;28</div></td>
  98. </tr>
  99. <tr>
  100. <td class="success" colspan="4">&nbsp;<a href="#9"><abbr title="install()">install</abbr></a></td>
  101. <td class="success big"> <div class="progress">
  102. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  103. <span class="sr-only">100.00% covered (success)</span>
  104. </div>
  105. </div>
  106. </td>
  107. <td class="success small"><div align="right">100.00%</div></td>
  108. <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
  109. <td class="success small">2</td>
  110. <td class="success big"> <div class="progress">
  111. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  112. <span class="sr-only">100.00% covered (success)</span>
  113. </div>
  114. </div>
  115. </td>
  116. <td class="success small"><div align="right">100.00%</div></td>
  117. <td class="success small"><div align="right">6&nbsp;/&nbsp;6</div></td>
  118. </tr>
  119. <tr>
  120. <td class="danger" colspan="4">&nbsp;<a href="#23"><abbr title="setConfig($lang, $key, $value)">setConfig</abbr></a></td>
  121. <td class="danger big"> <div class="progress">
  122. <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
  123. <span class="sr-only">0.00% covered (danger)</span>
  124. </div>
  125. </div>
  126. </td>
  127. <td class="danger small"><div align="right">0.00%</div></td>
  128. <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
  129. <td class="danger small">6</td>
  130. <td class="danger big"> <div class="progress">
  131. <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
  132. <span class="sr-only">0.00% covered (danger)</span>
  133. </div>
  134. </div>
  135. </td>
  136. <td class="danger small"><div align="right">0.00%</div></td>
  137. <td class="danger small"><div align="right">0&nbsp;/&nbsp;14</div></td>
  138. </tr>
  139. <tr>
  140. <td class="danger" colspan="4">&nbsp;<a href="#43"><abbr title="getConfig($lang =null, $key =null, $defaultValue =null)">getConfig</abbr></a></td>
  141. <td class="danger big"> <div class="progress">
  142. <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
  143. <span class="sr-only">0.00% covered (danger)</span>
  144. </div>
  145. </div>
  146. </td>
  147. <td class="danger small"><div align="right">0.00%</div></td>
  148. <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
  149. <td class="danger small">5.05</td>
  150. <td class="warning big"> <div class="progress">
  151. <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="87.50" aria-valuemin="0" aria-valuemax="100" style="width: 87.50%">
  152. <span class="sr-only">87.50% covered (warning)</span>
  153. </div>
  154. </div>
  155. </td>
  156. <td class="warning small"><div align="right">87.50%</div></td>
  157. <td class="warning small"><div align="right">7&nbsp;/&nbsp;8</div></td>
  158. </tr>
  159. </tbody>
  160. </table>
  161. <table id="code" class="table table-borderless table-condensed">
  162. <tbody>
  163. <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default">&lt;?php</span></td></tr>
  164. <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"></td></tr>
  165. <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default">&nbsp;</span><span class="default">Entity</span><span class="keyword">;</span></td></tr>
  166. <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"></td></tr>
  167. <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default">&nbsp;</span><span class="default">Config</span><span class="default">&nbsp;</span><span class="keyword">extends</span><span class="default">&nbsp;</span><span class="default">ModelBase</span></td></tr>
  168. <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr>
  169. <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span class="default">&nbsp;</span><span class="keyword">static</span><span class="default">&nbsp;</span><span class="default">$config</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  170. <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"></td></tr>
  171. <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">install</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
  172. <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
  173. <tr class="covered-by-large-tests popin" data-title="5 tests cover line 11" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  174. <tr class="covered-by-large-tests popin" data-title="5 tests cover line 12" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">config`&nbsp;(</span></td></tr>
  175. <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`lang`&nbsp;VARCHAR(8)&nbsp;NULL,</span></td></tr>
  176. <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`key`&nbsp;VARCHAR(64)&nbsp;NOT&nbsp;NULL,</span></td></tr>
  177. <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`value`&nbsp;TEXT&nbsp;NULL,</span></td></tr>
  178. <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UNIQUE(`lang`,&nbsp;`key`)</span></td></tr>
  179. <tr class="covered-by-large-tests popin" data-title="5 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  180. <tr class="covered-by-large-tests popin" data-title="5 tests cover line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
  181. <tr class="covered-by-large-tests popin" data-title="5 tests cover line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  182. <tr class="covered-by-large-tests popin" data-title="5 tests cover line 20" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
  183. <tr class="warning"><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
  184. <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"></td></tr>
  185. <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">static</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">setConfig</span><span class="keyword">(</span><span class="default">$lang</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$key</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="keyword">)</span></td></tr>
  186. <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
  187. <tr class="danger"><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$fetcher</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">self</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  188. <tr class="danger"><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$fetcher</span><span class="default">-&gt;</span><span class="default">selects</span><span class="keyword">(</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;lang&quot;</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$lang</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;key&quot;</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$key</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  189. <tr class="danger"><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">empty</span><span class="keyword">(</span><span class="default">$data</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
  190. <tr class="danger"><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
  191. <tr class="danger"><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">self</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  192. <tr class="danger"><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">-&gt;</span><span class="default">lang</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$lang</span><span class="keyword">;</span></td></tr>
  193. <tr class="danger"><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">-&gt;</span><span class="default">key</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$key</span><span class="keyword">;</span></td></tr>
  194. <tr class="danger"><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">-&gt;</span><span class="default">value</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="keyword">;</span></td></tr>
  195. <tr class="danger"><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">-&gt;</span><span class="default">save</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  196. <tr class="danger"><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
  197. <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span></td></tr>
  198. <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
  199. <tr class="danger"><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$data</span><span class="keyword">[</span><span class="default">0</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
  200. <tr class="danger"><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">-&gt;</span><span class="default">value</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="keyword">;</span></td></tr>
  201. <tr class="danger"><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">-&gt;</span><span class="default">save</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  202. <tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
  203. <tr class="danger"><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
  204. <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"></td></tr>
  205. <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">static</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">getConfig</span><span class="keyword">(</span><span class="default">$lang</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">null</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$key</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">null</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$defaultValue</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">null</span><span class="keyword">)</span></td></tr>
  206. <tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
  207. <tr class="covered-by-large-tests popin" data-title="4 tests cover line 45" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testEnv&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$fetcher</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">self</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  208. <tr class="covered-by-large-tests popin" data-title="4 tests cover line 46" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testEnv&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="keyword">[</span><span class="default">$lang</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
  209. <tr class="covered-by-large-tests popin" data-title="4 tests cover line 47" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testEnv&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="keyword">;</span></td></tr>
  210. <tr class="covered-by-large-tests popin" data-title="4 tests cover line 48" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testEnv&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$values</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$fetcher</span><span class="default">-&gt;</span><span class="default">selects</span><span class="keyword">(</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;lang&quot;</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$lang</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  211. <tr class="covered-by-large-tests popin" data-title="4 tests cover line 49" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testEnv&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$values</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">)</span></td></tr>
  212. <tr class="covered-by-large-tests popin" data-title="4 tests cover line 50" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testEnv&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="keyword">[</span><span class="default">$lang</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">key</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">value</span><span class="keyword">;</span></td></tr>
  213. <tr><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
  214. <tr class="covered-by-large-tests popin" data-title="4 tests cover line 52" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testEnv&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="keyword">[</span><span class="default">$lang</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">$key</span><span class="keyword">]</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">?</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="keyword">[</span><span class="default">$lang</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">$key</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="default">$defaultValue</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  215. <tr class="danger"><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$defaultValue</span><span class="keyword">;</span></td></tr>
  216. <tr class="warning"><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
  217. <tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
  218. <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"></td></tr>
  219. </tbody>
  220. </table>
  221. <footer>
  222. <hr/>
  223. <h4>Legend</h4>
  224. <p>
  225. <span class="success"><strong>Executed</strong></span>
  226. <span class="danger"><strong>Not Executed</strong></span>
  227. <span class="warning"><strong>Dead Code</strong></span>
  228. </p>
  229. <p>
  230. <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 11 21:36:02 UTC 2015.</small>
  231. </p>
  232. <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
  233. </footer>
  234. </div>
  235. <script src="../js/jquery.min.js" type="text/javascript"></script>
  236. <script src="../js/bootstrap.min.js" type="text/javascript"></script>
  237. <script src="../js/holder.min.js" type="text/javascript"></script>
  238. <script type="text/javascript">
  239. $(function() {
  240. var $window = $(window)
  241. , $top_link = $('#toplink')
  242. , $body = $('body, html')
  243. , offset = $('#code').offset().top;
  244. $top_link.hide().click(function(event) {
  245. event.preventDefault();
  246. $body.animate({scrollTop:0}, 800);
  247. });
  248. $window.scroll(function() {
  249. if($window.scrollTop() > offset) {
  250. $top_link.fadeIn();
  251. } else {
  252. $top_link.fadeOut();
  253. }
  254. }).scroll();
  255. $('.popin').popover({trigger: 'hover'});
  256. });
  257. </script>
  258. </body>
  259. </html>