Pārlūkot izejas kodu

Installation de modules, tests unitaires

isundil 10 gadi atpakaļ
vecāks
revīzija
ed273d1bab
100 mainītis faili ar 1807 papildinājumiem un 1310 dzēšanām
  1. 0 1
      core/models/cms.php
  2. BIN
      core/tools/.Router.php.swp
  3. 14 0
      core/tools/AModule.php
  4. 9 1
      core/tools/Context.php
  5. 39 5
      core/tools/ModuleManager.php
  6. 25 0
      core/tools/Router.php
  7. 33 33
      doc/coverage/autoload.php.html
  8. 1 1
      doc/coverage/config.inc.php.html
  9. 1 1
      doc/coverage/controllers/CategoryController.php.html
  10. 1 1
      doc/coverage/controllers/Error404.php.html
  11. 1 1
      doc/coverage/controllers/ProductController.php.html
  12. 1 1
      doc/coverage/controllers/dashboard.html
  13. 1 1
      doc/coverage/controllers/index.html
  14. 1 1
      doc/coverage/controllers/index.php.html
  15. 27 40
      doc/coverage/dashboard.html
  16. 1 1
      doc/coverage/exceptions/Error404.php.html
  17. 3 3
      doc/coverage/exceptions/dashboard.html
  18. 1 24
      doc/coverage/exceptions/index.html
  19. 1 1
      doc/coverage/exceptions/index.php.html
  20. 35 40
      doc/coverage/index.html
  21. 1 1
      doc/coverage/index.php.html
  22. 1 1
      doc/coverage/models/Address.php.html
  23. 1 1
      doc/coverage/models/Admin.php.html
  24. 1 1
      doc/coverage/models/Cart.php.html
  25. 1 1
      doc/coverage/models/CartProduct.php.html
  26. 1 1
      doc/coverage/models/Category.php.html
  27. 1 1
      doc/coverage/models/Cms.php.html
  28. 8 8
      doc/coverage/models/Config.php.html
  29. 1 1
      doc/coverage/models/Meta.php.html
  30. 81 81
      doc/coverage/models/ModelBase.php.html
  31. 3 3
      doc/coverage/models/Module.php.html
  32. 3 3
      doc/coverage/models/ModuleHook.php.html
  33. 1 1
      doc/coverage/models/Product.php.html
  34. 1 1
      doc/coverage/models/User.php.html
  35. 8 12
      doc/coverage/models/dashboard.html
  36. 11 24
      doc/coverage/models/index.html
  37. 1 1
      doc/coverage/models/index.php.html
  38. 1 1
      doc/coverage/setup/dashboard.html
  39. 1 1
      doc/coverage/setup/index.html
  40. 1 1
      doc/coverage/setup/index.php.html
  41. 3 3
      doc/coverage/tools/AController.php.html
  42. 122 66
      doc/coverage/tools/AModule.php.html
  43. 68 39
      doc/coverage/tools/Context.php.html
  44. 1 1
      doc/coverage/tools/HookEvent.php.html
  45. 10 10
      doc/coverage/tools/Hooks.php.html
  46. 230 154
      doc/coverage/tools/ModuleManager.php.html
  47. 263 217
      doc/coverage/tools/Router.php.html
  48. 18 29
      doc/coverage/tools/dashboard.html
  49. 43 43
      doc/coverage/tools/index.html
  50. 1 1
      doc/html/_2main_8php.html
  51. 1 1
      doc/html/_2main_8php_source.html
  52. 1 1
      doc/html/_a_controller_8php.html
  53. 1 1
      doc/html/_a_controller_8php_source.html
  54. 1 1
      doc/html/_a_module_8php.html
  55. 21 11
      doc/html/_a_module_8php_source.html
  56. 1 1
      doc/html/_address_8php.html
  57. 1 1
      doc/html/_address_8php_source.html
  58. 1 1
      doc/html/_admin_8php.html
  59. 2 2
      doc/html/_admin_8php_source.html
  60. 1 1
      doc/html/_cart_8php.html
  61. 1 1
      doc/html/_cart_8php_source.html
  62. 1 1
      doc/html/_cart_product_8php.html
  63. 1 1
      doc/html/_cart_product_8php_source.html
  64. 1 1
      doc/html/_category_8php.html
  65. 1 1
      doc/html/_category_8php_source.html
  66. 1 1
      doc/html/_category_controller_8php.html
  67. 1 1
      doc/html/_category_controller_8php_source.html
  68. 1 1
      doc/html/_cms_8php.html
  69. 1 1
      doc/html/_cms_8php_source.html
  70. 1 1
      doc/html/_config_8php.html
  71. 35 14
      doc/html/_config_8php_source.html
  72. 1 1
      doc/html/_context_8php.html
  73. 36 29
      doc/html/_context_8php_source.html
  74. 1 1
      doc/html/_hook_event_8php.html
  75. 1 1
      doc/html/_hook_event_8php_source.html
  76. 1 1
      doc/html/_hooks_8php.html
  77. 2 2
      doc/html/_hooks_8php_source.html
  78. 1 1
      doc/html/_meta_8php.html
  79. 1 1
      doc/html/_meta_8php_source.html
  80. 1 1
      doc/html/_model_base_8php.html
  81. 131 129
      doc/html/_model_base_8php_source.html
  82. 1 1
      doc/html/_module_8php.html
  83. 1 1
      doc/html/_module_8php_source.html
  84. 1 1
      doc/html/_module_hook_8php.html
  85. 1 1
      doc/html/_module_hook_8php_source.html
  86. 1 1
      doc/html/_module_manager_8php.html
  87. 91 64
      doc/html/_module_manager_8php_source.html
  88. 1 1
      doc/html/_product_8php.html
  89. 1 1
      doc/html/_product_8php_source.html
  90. 1 1
      doc/html/_product_controller_8php.html
  91. 1 1
      doc/html/_product_controller_8php_source.html
  92. 1 1
      doc/html/_router_8php.html
  93. 145 126
      doc/html/_router_8php_source.html
  94. 1 1
      doc/html/_user_8php.html
  95. 2 2
      doc/html/_user_8php_source.html
  96. 29 28
      doc/html/annotated.html
  97. 1 1
      doc/html/autoload_8php.html
  98. 1 1
      doc/html/autoload_8php_source.html
  99. 1 1
      doc/html/class_controller_1_1_category_controller.html
  100. 192 0
      doc/html/class_controller_1_1_error404.html

+ 0 - 1
core/models/cms.php

@@ -1 +0,0 @@
- 

BIN
core/tools/.Router.php.swp


+ 14 - 0
core/tools/AModule.php

@@ -80,6 +80,20 @@ abstract class AModule
         $this->context->hooks->register($this, $hookname);
     }
 
+	/**
+	 * @return string module name
+	**/
+	public function getName()
+	{
+		return $this->entity->name;
+	}
+
+	/**
+	 * @return string module's description
+	**/
+	public function getDescription()
+	{ return ""; }
+
 	/**
 	 * Getter
 	**/

+ 9 - 1
core/tools/Context.php

@@ -87,7 +87,7 @@ class Context
 	 *  -> REQUEST_URI
 	 *  -> HTTP_HOST
     **/
-    public function __construct($server = null, $run = true)
+    public function __construct($server = null)
     {
 		self::$instance = $this;
 		if ($server == null)
@@ -140,6 +140,14 @@ class Context
         throw new \Exception("Cannot access attribute {$key}");
     }
 
+	/**
+	 * Check if executed from phpUnit
+	**/
+	public function isTestingEnvironment()
+	{
+		return isset($this->server["phpUnit"]) && $this->server["phpUnit"] == true;
+	}
+
 	/**
 	 * @return \Tools\Context context
 	 * Get the last Context instance

+ 39 - 5
core/tools/ModuleManager.php

@@ -50,7 +50,6 @@ class ModuleManager
             }
             else
             {
-                die ("out");
                 $i->active = false;
                 $i->save();
             }
@@ -58,6 +57,19 @@ class ModuleManager
         $context->hookManager->loadHooks(\Entity\ModuleHook::getModules($ids));
     }
 
+	/**
+	 * @param string $path
+	 * @return \Tools\AModule loaded module (or false on error)
+	**/
+	private function loadModuleFile($path)
+	{
+        $mod = include_once($path);
+        if (!$mod || !($mod instanceof \Tools\AModule))
+            return false;
+        $mod->setContext($this->context);
+		return $mod;
+	}
+
     /**
      * @param string $path path to module's main file
      * @param \Entity\Module $module module's database object to load
@@ -70,15 +82,37 @@ class ModuleManager
     **/
     private function loadModule($path, $module)
     {
-        $mod = include_once($path);
-        if (!$mod || !($mod instanceof \Tools\AModule))
-            return false;
-        $mod->setContext($this->context);
+		$mod = $this->loadModuleFile($path);
+		if ($mod === false)
+			return false;
         $mod->setEntity($module);
         $this->modules[] = $mod;
         return true;
     }
 
+	/**
+	 * @param string $modulename
+	 * @return \tools\AModule|false on failure
+	 * Install the module located in {modulePath}/modulename/modulename.php
+	**/
+	public function install($modulename)
+	{
+		$entity = new \Entity\Module();
+		$entity->name = $modulename;
+		$entity->directory = $modulename;
+		$entity->active = true;
+		$module = $this->loadModuleFile($this->context->router->modulesPath.$modulename.'/main.php');
+		if ($module === false)
+			return false;
+		$entity->name = $module->getName();
+		$entity->description = $module->getDescription();
+		if ($module->install() == false)
+			return false;
+		$entity->save();
+		$module->setEntity($entity);
+		return $module;
+	}
+
     /*
      * TODO revoir tout
      * @return array(AModule)

+ 25 - 0
core/tools/Router.php

@@ -50,6 +50,12 @@ class Router
 	**/
 	private $routeParams;
 
+	/**
+	 * @var array $overridden
+	 * contains url and paths to rewrite
+	 **/
+	private $overridden;
+
     /**
      * @var string $modulePath
      * Contains the module directory
@@ -82,6 +88,7 @@ class Router
         $this->requestUrl = substr($server["REQUEST_URI"], count($this->rootUrl) -1);
         $this->context = $context;
         $this->routes = array();
+		$this->overridden = null;
     }
 
     /**
@@ -217,11 +224,29 @@ class Router
         $this->doRouteAdd($route, $controller);
     }
 
+	/**
+	 * Override url
+	 * This SHOULD not be called for security purpose
+	 * @param string $type the url type to override
+	 * @param string $value the new value
+	 * Will fail if called from a controller
+	 * @return boolean false on failure
+	**/
+	public function overrideUrl($type, $value)
+	{
+		if (!$this->context->isTestingEnvironment())
+			return false;
+		$this->overridden[$type] = $value;
+		return true;
+	}
+
 	/**
 	 * Getter
 	**/
     public function __get($key)
     {
+		if (isset($this->overridden) && in_array($key, array("modulesPath")))
+			return $this->overridden[$key];
         switch ($key)
         {
         case "rootPath": return $this->rootPath; break;

+ 33 - 33
doc/coverage/autoload.php.html

@@ -49,35 +49,35 @@
       <td class="None small"><div align="right"></div></td>
       <td class="None small"><div align="right">&nbsp;</div></td>
       <td class="None small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
-      <td class="success big">       <div class="progress">
-         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
-           <span class="sr-only">100.00% covered (success)</span>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="66.67" aria-valuemin="0" aria-valuemax="100" style="width: 66.67%">
+           <span class="sr-only">66.67% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="success small"><div align="right">100.00%</div></td>
-      <td class="success small"><div align="right">15&nbsp;/&nbsp;15</div></td>
+      <td class="warning small"><div align="right">66.67%</div></td>
+      <td class="warning small"><div align="right">10&nbsp;/&nbsp;15</div></td>
      </tr>
 
      <tr>
-      <td class="success" colspan="4"><a href="#8"><abbr title="__autoload($className)">__autoload</abbr></a></td>
-      <td class="success big">       <div class="progress">
-         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
-           <span class="sr-only">100.00% covered (success)</span>
+      <td class="danger" colspan="4"><a href="#8"><abbr title="__autoload($className)">__autoload</abbr></a></td>
+      <td class="danger big">       <div class="progress">
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
+           <span class="sr-only">0.00% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="success small"><div align="right">100.00%</div></td>
-      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
-      <td class="success small">0</td>
-      <td class="success big">       <div class="progress">
-         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
-           <span class="sr-only">100.00% covered (success)</span>
+      <td class="danger small"><div align="right">0.00%</div></td>
+      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
+      <td class="danger small">0</td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="66.67" aria-valuemin="0" aria-valuemax="100" style="width: 66.67%">
+           <span class="sr-only">66.67% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="success small"><div align="right">100.00%</div></td>
-      <td class="success small"><div align="right">15&nbsp;/&nbsp;15</div></td>
+      <td class="warning small"><div align="right">66.67%</div></td>
+      <td class="warning small"><div align="right">10&nbsp;/&nbsp;15</div></td>
      </tr>
 
 
@@ -94,24 +94,24 @@
      <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment">**/</span></td></tr>
      <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__autoload</span><span class="keyword">(</span><span class="default">$className</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">strpos</span><span class="keyword">(</span><span class="default">$className</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">'\\'</span><span class="keyword">)</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>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 11" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&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="keyword">return</span><span class="default">&nbsp;</span><span class="default">FALSE</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 12" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&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;</span><span class="default">list</span><span class="keyword">(</span><span class="default">$namespace</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$class</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">explode</span><span class="keyword">(</span><span class="default">'\\'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$className</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">2</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 13" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">strpos</span><span class="keyword">(</span><span class="default">$className</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">'\\'</span><span class="keyword">)</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>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 11" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&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="keyword">return</span><span class="default">&nbsp;</span><span class="default">FALSE</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 12" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&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;</span><span class="default">list</span><span class="keyword">(</span><span class="default">$namespace</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$class</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">explode</span><span class="keyword">(</span><span class="default">'\\'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$className</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">2</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 13" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">;</span></td></tr>
      <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">switch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$namespace</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 16" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;Entity&quot;</span><span class="keyword">:</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&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="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">core/models/</span><span class="string">{</span><span class="string">$class</span><span class="keyword">}</span><span class="string">.php</span><span class="string">&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&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;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;Tools&quot;</span><span class="keyword">:</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&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;</span><span class="default">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">core/tools/</span><span class="string">{</span><span class="string">$class</span><span class="keyword">}</span><span class="string">.php</span><span class="string">&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 20" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&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;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;Controller&quot;</span><span class="keyword">:</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 21" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">core/controllers/</span><span class="string">{</span><span class="string">$class</span><span class="keyword">}</span><span class="string">.php</span><span class="string">&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 22" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;Exception&quot;</span><span class="keyword">:</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 23" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">core/exceptions/</span><span class="string">{</span><span class="string">$class</span><span class="keyword">}</span><span class="string">.php</span><span class="string">&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 16" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;Entity&quot;</span><span class="keyword">:</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">core/models/</span><span class="string">{</span><span class="string">$class</span><span class="keyword">}</span><span class="string">.php</span><span class="string">&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&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;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;Tools&quot;</span><span class="keyword">:</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&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;</span><span class="default">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">core/tools/</span><span class="string">{</span><span class="string">$class</span><span class="keyword">}</span><span class="string">.php</span><span class="string">&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><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;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;Controller&quot;</span><span class="keyword">:</span></td></tr>
+     <tr class="danger"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">core/controllers/</span><span class="string">{</span><span class="string">$class</span><span class="keyword">}</span><span class="string">.php</span><span class="string">&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;Exception&quot;</span><span class="keyword">:</span></td></tr>
+     <tr class="danger"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">core/exceptions/</span><span class="string">{</span><span class="string">$class</span><span class="keyword">}</span><span class="string">.php</span><span class="string">&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><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>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 25" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">file_exists</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 26" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="keyword">include_once</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 27" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$path</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 25" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">file_exists</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 26" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="keyword">include_once</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 27" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$path</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"></td></tr>
 
@@ -126,7 +126,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/config.inc.php.html

@@ -72,7 +72,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/controllers/CategoryController.php.html

@@ -173,7 +173,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/controllers/Error404.php.html

@@ -175,7 +175,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/controllers/ProductController.php.html

@@ -174,7 +174,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/controllers/dashboard.html

@@ -145,7 +145,7 @@
    <footer>
     <hr/>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
    </footer>
   </div>

+ 1 - 1
doc/coverage/controllers/index.html

@@ -178,7 +178,7 @@
      <span class="success"><strong>High</strong>: 90% to 100%</span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
    </footer>
   </div>

+ 1 - 1
doc/coverage/controllers/index.php.html

@@ -73,7 +73,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 27 - 40
doc/coverage/dashboard.html


+ 1 - 1
doc/coverage/exceptions/Error404.php.html

@@ -108,7 +108,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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 17:53:21 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 3 - 3
doc/coverage/exceptions/dashboard.html

@@ -137,7 +137,7 @@
    <footer>
     <hr/>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
    </footer>
   </div>
@@ -158,7 +158,7 @@ $(document).ready(function() {
       .yAxis.tickFormat(d3.format('d'));
 
     d3.select('#classCoverageDistribution svg')
-      .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,0,0,0,1], "Class Coverage"))
+      .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,0,0,0,0], "Class Coverage"))
       .transition().duration(500).call(chart);
 
     nv.utils.windowResize(chart.update);
@@ -226,7 +226,7 @@ $(document).ready(function() {
     chart.yAxis.axisLabel('Cyclomatic Complexity');
 
     d3.select('#classComplexity svg')
-      .datum(getComplexityData([[100,0,"<a href=\"Error404.php.html#9\">Error404<\/a>"]], 'Class Complexity'))
+      .datum(getComplexityData([], 'Class Complexity'))
       .transition()
       .duration(500)
       .call(chart);

+ 1 - 24
doc/coverage/exceptions/index.html

@@ -49,32 +49,9 @@
       <td class="None big">&nbsp;</td>
       <td class="None small"><div align="right"></div></td>
       <td class="None small"><div align="right">&nbsp;</div></td>
-      <td class="success big">       <div class="progress">
-         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
-           <span class="sr-only">100.00% covered (success)</span>
-         </div>
-       </div>
-</td>
-      <td class="success small"><div align="right">100.00%</div></td>
-      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
-     </tr>
-
-     <tr>
-      <td class="None"><span class="glyphicon glyphicon-file"></span> <a href="Error404.php.html">Error404.php</a></td>
-      <td class="None big">&nbsp;</td>
-      <td class="None small"><div align="right"></div></td>
-      <td class="None small"><div align="right">&nbsp;</div></td>
       <td class="None big">&nbsp;</td>
       <td class="None small"><div align="right"></div></td>
       <td class="None small"><div align="right">&nbsp;</div></td>
-      <td class="success big">       <div class="progress">
-         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
-           <span class="sr-only">100.00% covered (success)</span>
-         </div>
-       </div>
-</td>
-      <td class="success small"><div align="right">100.00%</div></td>
-      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
      </tr>
 
      <tr>
@@ -102,7 +79,7 @@
      <span class="success"><strong>High</strong>: 90% to 100%</span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
    </footer>
   </div>

+ 1 - 1
doc/coverage/exceptions/index.php.html

@@ -73,7 +73,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 35 - 40
doc/coverage/index.html

@@ -43,29 +43,29 @@
      <tr>
       <td class="warning">Total</td>
       <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="73.80" aria-valuemin="0" aria-valuemax="100" style="width: 73.80%">
-           <span class="sr-only">73.80% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="81.76" aria-valuemin="0" aria-valuemax="100" style="width: 81.76%">
+           <span class="sr-only">81.76% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">73.80%</div></td>
-      <td class="warning small"><div align="right">355&nbsp;/&nbsp;481</div></td>
+      <td class="warning small"><div align="right">81.76%</div></td>
+      <td class="warning small"><div align="right">417&nbsp;/&nbsp;510</div></td>
       <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="61.84" aria-valuemin="0" aria-valuemax="100" style="width: 61.84%">
-           <span class="sr-only">61.84% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="70.73" aria-valuemin="0" aria-valuemax="100" style="width: 70.73%">
+           <span class="sr-only">70.73% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">61.84%</div></td>
-      <td class="warning small"><div align="right">47&nbsp;/&nbsp;76</div></td>
+      <td class="warning small"><div align="right">70.73%</div></td>
+      <td class="warning small"><div align="right">58&nbsp;/&nbsp;82</div></td>
       <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="54.17" aria-valuemin="0" aria-valuemax="100" style="width: 54.17%">
-           <span class="sr-only">54.17% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="52.17" aria-valuemin="0" aria-valuemax="100" style="width: 52.17%">
+           <span class="sr-only">52.17% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">54.17%</div></td>
-      <td class="warning small"><div align="right">13&nbsp;/&nbsp;24</div></td>
+      <td class="warning small"><div align="right">52.17%</div></td>
+      <td class="warning small"><div align="right">12&nbsp;/&nbsp;23</div></td>
      </tr>
 
      <tr>
@@ -104,26 +104,21 @@
       <td class="None big">&nbsp;</td>
       <td class="None small"><div align="right"></div></td>
       <td class="None small"><div align="right">&nbsp;</div></td>
-      <td class="success big">       <div class="progress">
-         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
-           <span class="sr-only">100.00% covered (success)</span>
-         </div>
-       </div>
-</td>
-      <td class="success small"><div align="right">100.00%</div></td>
-      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="None big">&nbsp;</td>
+      <td class="None small"><div align="right"></div></td>
+      <td class="None small"><div align="right">&nbsp;</div></td>
      </tr>
 
      <tr>
       <td class="warning"><span class="glyphicon glyphicon-folder-open"></span> <a href="models/index.html">models</a></td>
       <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="84.62" aria-valuemin="0" aria-valuemax="100" style="width: 84.62%">
-           <span class="sr-only">84.62% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="87.55" aria-valuemin="0" aria-valuemax="100" style="width: 87.55%">
+           <span class="sr-only">87.55% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">84.62%</div></td>
-      <td class="warning small"><div align="right">231&nbsp;/&nbsp;273</div></td>
+      <td class="warning small"><div align="right">87.55%</div></td>
+      <td class="warning small"><div align="right">239&nbsp;/&nbsp;273</div></td>
       <td class="warning big">       <div class="progress">
          <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="81.58" aria-valuemin="0" aria-valuemax="100" style="width: 81.58%">
            <span class="sr-only">81.58% covered (warning)</span>
@@ -158,21 +153,21 @@
      <tr>
       <td class="warning"><span class="glyphicon glyphicon-folder-open"></span> <a href="tools/index.html">tools</a></td>
       <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="58.15" aria-valuemin="0" aria-valuemax="100" style="width: 58.15%">
-           <span class="sr-only">58.15% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="77.93" aria-valuemin="0" aria-valuemax="100" style="width: 77.93%">
+           <span class="sr-only">77.93% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">58.15%</div></td>
-      <td class="warning small"><div align="right">107&nbsp;/&nbsp;184</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="46.88" aria-valuemin="0" aria-valuemax="100" style="width: 46.88%">
-           <span class="sr-only">46.88% covered (danger)</span>
+      <td class="warning small"><div align="right">77.93%</div></td>
+      <td class="warning small"><div align="right">166&nbsp;/&nbsp;213</div></td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="68.42" aria-valuemin="0" aria-valuemax="100" style="width: 68.42%">
+           <span class="sr-only">68.42% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">46.88%</div></td>
-      <td class="danger small"><div align="right">15&nbsp;/&nbsp;32</div></td>
+      <td class="warning small"><div align="right">68.42%</div></td>
+      <td class="warning small"><div align="right">26&nbsp;/&nbsp;38</div></td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="28.57" aria-valuemin="0" aria-valuemax="100" style="width: 28.57%">
            <span class="sr-only">28.57% covered (danger)</span>
@@ -184,15 +179,15 @@
      </tr>
 
      <tr>
-      <td class="success"><span class="glyphicon glyphicon-file"></span> <a href="autoload.php.html">autoload.php</a></td>
-      <td class="success big">       <div class="progress">
-         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
-           <span class="sr-only">100.00% covered (success)</span>
+      <td class="warning"><span class="glyphicon glyphicon-file"></span> <a href="autoload.php.html">autoload.php</a></td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="66.67" aria-valuemin="0" aria-valuemax="100" style="width: 66.67%">
+           <span class="sr-only">66.67% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="success small"><div align="right">100.00%</div></td>
-      <td class="success small"><div align="right">15&nbsp;/&nbsp;15</div></td>
+      <td class="warning small"><div align="right">66.67%</div></td>
+      <td class="warning small"><div align="right">10&nbsp;/&nbsp;15</div></td>
       <td class="None big">&nbsp;</td>
       <td class="None small"><div align="right"></div></td>
       <td class="None small"><div align="right">&nbsp;</div></td>
@@ -239,7 +234,7 @@
      <span class="success"><strong>High</strong>: 90% to 100%</span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
    </footer>
   </div>

+ 1 - 1
doc/coverage/index.php.html

@@ -72,7 +72,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/models/Address.php.html

@@ -165,7 +165,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/models/Admin.php.html

@@ -282,7 +282,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/models/Cart.php.html

@@ -158,7 +158,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/models/CartProduct.php.html

@@ -160,7 +160,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/models/Category.php.html

@@ -157,7 +157,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/models/Cms.php.html

@@ -159,7 +159,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 8 - 8
doc/coverage/models/Config.php.html

@@ -211,14 +211,14 @@
      <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"></td></tr>
      <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>
      <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>
-     <tr class="covered-by-large-tests popin" data-title="2 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;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>
-     <tr class="covered-by-large-tests popin" data-title="2 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;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>
-     <tr class="covered-by-large-tests popin" data-title="2 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;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>
-     <tr class="covered-by-large-tests popin" data-title="2 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;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>
-     <tr class="covered-by-large-tests popin" data-title="2 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;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>
-     <tr class="covered-by-large-tests popin" data-title="2 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;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>
+     <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>
+     <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>
+     <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>
+     <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>
+     <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>
+     <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>
      <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>
-     <tr class="covered-by-large-tests popin" data-title="2 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;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>
+     <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>
      <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>
      <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>
      <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>
@@ -235,7 +235,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/models/Meta.php.html

@@ -224,7 +224,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 81 - 81
doc/coverage/models/ModelBase.php.html


+ 3 - 3
doc/coverage/models/Module.php.html

@@ -169,8 +169,8 @@
      <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="22"></a><a href="#22">22</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">getActivated</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
      <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">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 24" 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;/ul&gt;" data-placement="bottom" data-html="true"><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;&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>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 25" 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;/ul&gt;" data-placement="bottom" data-html="true"><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="keyword">return</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;active&quot;</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 24" 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="24"></a><a href="#24">24</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>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 25" 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="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="keyword">return</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;active&quot;</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><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;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"></td></tr>
@@ -186,7 +186,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 3 - 3
doc/coverage/models/ModuleHook.php.html

@@ -170,8 +170,8 @@
      <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"></td></tr>
      <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">getModules</span><span class="keyword">(</span><span class="default">$moduleIds</span><span class="keyword">)</span></td></tr>
      <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>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 25" 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;/ul&gt;" data-placement="bottom" data-html="true"><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>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 26" 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;/ul&gt;" data-placement="bottom" data-html="true"><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="keyword">return</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;module_id&quot;</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$moduleIds</span><span class="keyword">)</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;hookName&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;hookPosition&quot;</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 25" 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="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>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 26" 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="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="keyword">return</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;module_id&quot;</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$moduleIds</span><span class="keyword">)</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;hookName&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;hookPosition&quot;</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><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;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"></td></tr>
@@ -187,7 +187,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/models/Product.php.html

@@ -161,7 +161,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/models/User.php.html

@@ -273,7 +273,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 8 - 12
doc/coverage/models/dashboard.html


+ 11 - 24
doc/coverage/models/index.html

@@ -44,13 +44,13 @@
      <tr>
       <td class="warning">Total</td>
       <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="84.62" aria-valuemin="0" aria-valuemax="100" style="width: 84.62%">
-           <span class="sr-only">84.62% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="87.55" aria-valuemin="0" aria-valuemax="100" style="width: 87.55%">
+           <span class="sr-only">87.55% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">84.62%</div></td>
-      <td class="warning small"><div align="right">231&nbsp;/&nbsp;273</div></td>
+      <td class="warning small"><div align="right">87.55%</div></td>
+      <td class="warning small"><div align="right">239&nbsp;/&nbsp;273</div></td>
       <td class="warning big">       <div class="progress">
          <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="81.58" aria-valuemin="0" aria-valuemax="100" style="width: 81.58%">
            <span class="sr-only">81.58% covered (warning)</span>
@@ -294,15 +294,15 @@
      </tr>
 
      <tr>
-      <td class="warning"><span class="glyphicon glyphicon-file"></span> <a href="ModelBase.php.html">ModelBase.php</a></td>
-      <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="88.32" aria-valuemin="0" aria-valuemax="100" style="width: 88.32%">
-           <span class="sr-only">88.32% covered (warning)</span>
+      <td class="success"><span class="glyphicon glyphicon-file"></span> <a href="ModelBase.php.html">ModelBase.php</a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="94.16" aria-valuemin="0" aria-valuemax="100" style="width: 94.16%">
+           <span class="sr-only">94.16% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">88.32%</div></td>
-      <td class="warning small"><div align="right">121&nbsp;/&nbsp;137</div></td>
+      <td class="success small"><div align="right">94.16%</div></td>
+      <td class="success small"><div align="right">129&nbsp;/&nbsp;137</div></td>
       <td class="warning big">       <div class="progress">
          <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="75.00" aria-valuemin="0" aria-valuemax="100" style="width: 75.00%">
            <span class="sr-only">75.00% covered (warning)</span>
@@ -433,19 +433,6 @@
       <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
      </tr>
 
-     <tr>
-      <td class="None"><span class="glyphicon glyphicon-file"></span> <a href="cms.php.html">cms.php</a></td>
-      <td class="None big">&nbsp;</td>
-      <td class="None small"><div align="right"></div></td>
-      <td class="None small"><div align="right">&nbsp;</div></td>
-      <td class="None big">&nbsp;</td>
-      <td class="None small"><div align="right"></div></td>
-      <td class="None small"><div align="right">&nbsp;</div></td>
-      <td class="None big">&nbsp;</td>
-      <td class="None small"><div align="right"></div></td>
-      <td class="None small"><div align="right">&nbsp;</div></td>
-     </tr>
-
      <tr>
       <td class="None"><span class="glyphicon glyphicon-file"></span> <a href="index.php.html">index.php</a></td>
       <td class="None big">&nbsp;</td>
@@ -471,7 +458,7 @@
      <span class="success"><strong>High</strong>: 90% to 100%</span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
    </footer>
   </div>

+ 1 - 1
doc/coverage/models/index.php.html

@@ -73,7 +73,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/setup/dashboard.html

@@ -137,7 +137,7 @@
    <footer>
     <hr/>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
    </footer>
   </div>

+ 1 - 1
doc/coverage/setup/index.html

@@ -79,7 +79,7 @@
      <span class="success"><strong>High</strong>: 90% to 100%</span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
    </footer>
   </div>

+ 1 - 1
doc/coverage/setup/index.php.html

@@ -73,7 +73,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 3 - 3
doc/coverage/tools/AController.php.html

@@ -172,8 +172,8 @@
      <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
      <tr><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;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$context</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">)</span></td></tr>
      <tr><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;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 32" 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;/ul&gt;" data-placement="bottom" data-html="true"><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;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">params</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 33" 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;/ul&gt;" data-placement="bottom" data-html="true"><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;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 32" 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="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">params</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 33" 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="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"></td></tr>
      <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;</span><span class="comment">/**</span></td></tr>
      <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Fullfill&nbsp;Controller's&nbsp;request</span></td></tr>
@@ -193,7 +193,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 122 - 66
doc/coverage/tools/AModule.php.html

@@ -51,23 +51,23 @@
 </td>
       <td class="danger small"><div align="right">0.00%</div></td>
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="57.14" aria-valuemin="0" aria-valuemax="100" style="width: 57.14%">
+           <span class="sr-only">57.14% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;5</div></td>
-      <td class="danger small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="warning small"><div align="right">57.14%</div></td>
+      <td class="warning small"><div align="right">4&nbsp;/&nbsp;7</div></td>
+      <td class="warning small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="71.43" aria-valuemin="0" aria-valuemax="100" style="width: 71.43%">
+           <span class="sr-only">71.43% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;12</div></td>
+      <td class="warning small"><div align="right">71.43%</div></td>
+      <td class="warning small"><div align="right">10&nbsp;/&nbsp;14</div></td>
      </tr>
 
      <tr>
@@ -80,23 +80,23 @@
 </td>
       <td class="danger small"><div align="right">0.00%</div></td>
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="37.50" aria-valuemin="0" aria-valuemax="100" style="width: 37.50%">
-           <span class="sr-only">37.50% covered (danger)</span>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="70.00" aria-valuemin="0" aria-valuemax="100" style="width: 70.00%">
+           <span class="sr-only">70.00% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">37.50%</div></td>
-      <td class="danger small"><div align="right">3&nbsp;/&nbsp;8</div></td>
-      <td class="danger small">156</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="warning small"><div align="right">70.00%</div></td>
+      <td class="warning small"><div align="right">7&nbsp;/&nbsp;10</div></td>
+      <td class="warning small">18.57</td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="71.43" aria-valuemin="0" aria-valuemax="100" style="width: 71.43%">
+           <span class="sr-only">71.43% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;12</div></td>
+      <td class="warning small"><div align="right">71.43%</div></td>
+      <td class="warning small"><div align="right">10&nbsp;/&nbsp;14</div></td>
      </tr>
 
      <tr>
@@ -169,45 +169,45 @@
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#56"><abbr title="setContext($context)">setContext</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#56"><abbr title="setContext($context)">setContext</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">6</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">2</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;3</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">3&nbsp;/&nbsp;3</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#68"><abbr title="setEntity($entity)">setEntity</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#68"><abbr title="setEntity($entity)">setEntity</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">6</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">2</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;3</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">3&nbsp;/&nbsp;3</div></td>
      </tr>
 
      <tr>
@@ -232,7 +232,28 @@
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#86"><abbr title="__get($key)">__get</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#86"><abbr title="getName()">getName</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
+         </div>
+       </div>
+</td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">1</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
+         </div>
+       </div>
+</td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+     </tr>
+
+     <tr>
+      <td class="danger" colspan="4">&nbsp;<a href="#94"><abbr title="getDescription()">getDescription</abbr></a></td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
            <span class="sr-only">0.00% covered (danger)</span>
@@ -241,7 +262,7 @@
 </td>
       <td class="danger small"><div align="right">0.00%</div></td>
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">12</td>
+      <td class="danger small">2</td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
            <span class="sr-only">0.00% covered (danger)</span>
@@ -249,7 +270,28 @@
        </div>
 </td>
       <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;3</div></td>
+      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
+     </tr>
+
+     <tr>
+      <td class="success" colspan="4">&nbsp;<a href="#100"><abbr title="__get($key)">__get</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
+         </div>
+       </div>
+</td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">3</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
+         </div>
+       </div>
+</td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">3&nbsp;/&nbsp;3</div></td>
      </tr>
 
 
@@ -314,9 +356,9 @@
      <tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
      <tr><td><div align="right"><a name="56"></a><a href="#56">56</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">function</span><span class="default">&nbsp;</span><span class="default">setContext</span><span class="keyword">(</span><span class="default">$context</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="58"></a><a href="#58">58</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">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="59"></a><a href="#59">59</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">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 58" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="58"></a><a href="#58">58</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">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 59" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="59"></a><a href="#59">59</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">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 60" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
      <tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;\Entity\Module&nbsp;$module</span></td></tr>
@@ -326,9 +368,9 @@
      <tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
      <tr><td><div align="right"><a name="68"></a><a href="#68">68</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">function</span><span class="default">&nbsp;</span><span class="default">setEntity</span><span class="keyword">(</span><span class="default">$entity</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="70"></a><a href="#70">70</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">$this</span><span class="default">-&gt;</span><span class="default">entity</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="71"></a><a href="#71">71</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">$this</span><span class="default">-&gt;</span><span class="default">entity</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$entity</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 70" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="70"></a><a href="#70">70</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">$this</span><span class="default">-&gt;</span><span class="default">entity</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 71" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="71"></a><a href="#71">71</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">$this</span><span class="default">-&gt;</span><span class="default">entity</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$entity</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 72" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
      <tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Register&nbsp;hook&nbsp;to&nbsp;be&nbsp;triggered</span></td></tr>
@@ -340,19 +382,33 @@
      <tr class="danger"><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Getter</span></td></tr>
+     <tr><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;string&nbsp;module&nbsp;name</span></td></tr>
      <tr><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="86"></a><a href="#86">86</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">function</span><span class="default">&nbsp;</span><span class="default">__get</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="86"></a><a href="#86">86</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">function</span><span class="default">&nbsp;</span><span class="default">getName</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">switch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="90"></a><a href="#90">90</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;context&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="91"></a><a href="#91">91</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;entity&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">entity</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="default">&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="string">&quot;</span><span class="string">Cannot&nbsp;access&nbsp;attribute&nbsp;</span><span class="string">{</span><span class="string">$key</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 88" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="88"></a><a href="#88">88</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">$this</span><span class="default">-&gt;</span><span class="default">entity</span><span class="default">-&gt;</span><span class="default">name</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;string&nbsp;module's&nbsp;description</span></td></tr>
+     <tr><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="94"></a><a href="#94">94</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">function</span><span class="default">&nbsp;</span><span class="default">getDescription</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">&quot;&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Getter</span></td></tr>
+     <tr><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="100"></a><a href="#100">100</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">function</span><span class="default">&nbsp;</span><span class="default">__get</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">switch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 104" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="104"></a><a href="#104">104</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;context&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 105" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="105"></a><a href="#105">105</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;entity&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">entity</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 107" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="default">&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="string">&quot;</span><span class="string">Cannot&nbsp;access&nbsp;attribute&nbsp;</span><span class="string">{</span><span class="string">$key</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"></td></tr>
 
     </tbody>
    </table>
@@ -365,7 +421,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 68 - 39
doc/coverage/tools/Context.php.html

@@ -58,7 +58,7 @@
        </div>
 </td>
       <td class="success small"><div align="right">100.00%</div></td>
-      <td class="success small"><div align="right">4&nbsp;/&nbsp;4</div></td>
+      <td class="success small"><div align="right">5&nbsp;/&nbsp;5</div></td>
       <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
       <td class="success big">       <div class="progress">
          <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
@@ -67,7 +67,7 @@
        </div>
 </td>
       <td class="success small"><div align="right">100.00%</div></td>
-      <td class="success small"><div align="right">26&nbsp;/&nbsp;26</div></td>
+      <td class="success small"><div align="right">27&nbsp;/&nbsp;27</div></td>
      </tr>
 
      <tr>
@@ -87,8 +87,8 @@
        </div>
 </td>
       <td class="success small"><div align="right">100.00%</div></td>
-      <td class="success small"><div align="right">4&nbsp;/&nbsp;4</div></td>
-      <td class="success small">15</td>
+      <td class="success small"><div align="right">5&nbsp;/&nbsp;5</div></td>
+      <td class="success small">17</td>
       <td class="success big">       <div class="progress">
          <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
            <span class="sr-only">100.00% covered (success)</span>
@@ -96,11 +96,11 @@
        </div>
 </td>
       <td class="success small"><div align="right">100.00%</div></td>
-      <td class="success small"><div align="right">26&nbsp;/&nbsp;26</div></td>
+      <td class="success small"><div align="right">27&nbsp;/&nbsp;27</div></td>
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#90"><abbr title="__construct($server = null, $run = true)">__construct</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#90"><abbr title="__construct($server = null)">__construct</abbr></a></td>
       <td class="success big">       <div class="progress">
          <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
            <span class="sr-only">100.00% covered (success)</span>
@@ -163,7 +163,28 @@
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#147"><abbr title="getContext()">getContext</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#146"><abbr title="isTestingEnvironment()">isTestingEnvironment</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
+         </div>
+       </div>
+</td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">2</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
+         </div>
+       </div>
+</td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+     </tr>
+
+     <tr>
+      <td class="success" colspan="4">&nbsp;<a href="#155"><abbr title="getContext()">getContext</abbr></a></td>
       <td class="success big">       <div class="progress">
          <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
            <span class="sr-only">100.00% covered (success)</span>
@@ -277,19 +298,19 @@
      <tr><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;-&gt;&nbsp;REQUEST_URI</span></td></tr>
      <tr><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;-&gt;&nbsp;HTTP_HOST</span></td></tr>
      <tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="90"></a><a href="#90">90</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">function</span><span class="default">&nbsp;</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$server</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$run</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="90"></a><a href="#90">90</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">function</span><span class="default">&nbsp;</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$server</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 92" 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;ModelBaseTest::testInstallFailure&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="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$instance</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 93" 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;ModelBaseTest::testInstallFailure&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="93"></a><a href="#93">93</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">$server</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 94" 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;ModelBaseTest::testInstallFailure&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="94"></a><a href="#94">94</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">$server</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$_SERVER</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 95" 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;ModelBaseTest::testInstallFailure&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="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">ip</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;REMOTE_ADDR&quot;</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 96" 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;ModelBaseTest::testInstallFailure&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="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hookManager</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">Hooks</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 97" 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;ModelBaseTest::testInstallFailure&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="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 98" 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;ModelBaseTest::testInstallFailure&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="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="8 tests cover line 92" 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;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&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="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$instance</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="8 tests cover line 93" 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;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&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="93"></a><a href="#93">93</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">$server</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="8 tests cover line 94" 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;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&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="94"></a><a href="#94">94</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">$server</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$_SERVER</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="8 tests cover line 95" 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;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&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="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">ip</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;REMOTE_ADDR&quot;</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="8 tests cover line 96" 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;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&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="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hookManager</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">Hooks</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="8 tests cover line 97" 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;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&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="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="8 tests cover line 98" 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;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&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="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="100"></a><a href="#100">100</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">function</span><span class="default">&nbsp;</span><span class="default">serve</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 102" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">router</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">Router</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 102" 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="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">router</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">Router</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
      <tr><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;@codeCoverageIgnoreStart</span></td></tr>
      <tr><td><div align="right"><a name="104"></a><a href="#104">104</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">!</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">ModelBase</span><span class="default">::</span><span class="default">init</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
@@ -297,20 +318,20 @@
      <tr><td><div align="right"><a name="107"></a><a href="#107">107</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">die</span><span class="keyword">;</span></td></tr>
      <tr><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;@codeCoverageIgnoreEnd</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 110" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">router</span><span class="default">-&gt;</span><span class="default">init</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 111" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">moduleManager</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">ModuleManager</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 112" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="default">-&gt;</span><span class="default">trigger</span><span class="keyword">(</span><span class="default">&quot;routerSetup&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 110" 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="110"></a><a href="#110">110</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">router</span><span class="default">-&gt;</span><span class="default">init</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 111" 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="111"></a><a href="#111">111</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">moduleManager</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">ModuleManager</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 112" 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="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="default">-&gt;</span><span class="default">trigger</span><span class="keyword">(</span><span class="default">&quot;routerSetup&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
      <tr><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span></td></tr>
      <tr><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 115" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="115"></a><a href="#115">115</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">$this</span><span class="default">-&gt;</span><span class="default">controller</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">router</span><span class="default">-&gt;</span><span class="default">serveUrl</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 116" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="116"></a><a href="#116">116</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">controller</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 117" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&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="default">\</span><span class="default">Error404</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 115" 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="115"></a><a href="#115">115</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">$this</span><span class="default">-&gt;</span><span class="default">controller</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">router</span><span class="default">-&gt;</span><span class="default">serveUrl</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 116" 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="116"></a><a href="#116">116</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">controller</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 117" 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="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&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="default">\</span><span class="default">Error404</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
      <tr><td><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 119" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">catch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">\</span><span class="default">Exception</span><span class="default">\</span><span class="default">Error404</span><span class="default">&nbsp;</span><span class="default">$e</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 119" 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="119"></a><a href="#119">119</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">catch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">\</span><span class="default">Exception</span><span class="default">\</span><span class="default">Error404</span><span class="default">&nbsp;</span><span class="default">$e</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
      <tr class="covered-by-large-tests popin" data-title="2 tests cover line 121" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="121"></a><a href="#121">121</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">$this</span><span class="default">-&gt;</span><span class="default">controller</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">\</span><span class="default">Controller</span><span class="default">\</span><span class="default">Error404</span><span class="keyword">(</span><span class="default">$this</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><span class="keyword">;</span></td></tr>
      <tr><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 123" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 123" 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="123"></a><a href="#123">123</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
      <tr><td><div align="right"><a name="126"></a><a href="#126">126</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Getter&nbsp;function</span></td></tr>
@@ -319,11 +340,11 @@
      <tr><td><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
      <tr><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">switch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 132" 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;AdminTest::testAdminPassword&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;ModelBaseTest::testInstallFailure&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="132"></a><a href="#132">132</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;router&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">router</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 133" 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;AdminTest::testAdminPassword&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;ModelBaseTest::testInstallFailure&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="133"></a><a href="#133">133</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;cart&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">cart</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 134" 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;AdminTest::testAdminPassword&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;ModelBaseTest::testInstallFailure&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="134"></a><a href="#134">134</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;user&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">user</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 135" 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;AdminTest::testAdminPassword&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;ModelBaseTest::testInstallFailure&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="135"></a><a href="#135">135</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;moduleManager&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">moduleManager</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 136" 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;AdminTest::testAdminPassword&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;ModelBaseTest::testInstallFailure&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="136"></a><a href="#136">136</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;hookManager&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="10 tests cover line 132" 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::testInstall&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;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&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;ModelBaseTest::testInstallFailure&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="132"></a><a href="#132">132</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;router&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">router</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="10 tests cover line 133" 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::testInstall&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;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&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;ModelBaseTest::testInstallFailure&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="133"></a><a href="#133">133</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;cart&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">cart</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="10 tests cover line 134" 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::testInstall&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;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&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;ModelBaseTest::testInstallFailure&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="134"></a><a href="#134">134</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;user&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">user</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="10 tests cover line 135" 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::testInstall&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;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&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;ModelBaseTest::testInstallFailure&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="135"></a><a href="#135">135</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;moduleManager&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">moduleManager</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="9 tests cover line 136" 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;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&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;ModelBaseTest::testInstallFailure&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="136"></a><a href="#136">136</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;hookManager&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
      <tr class="covered-by-large-tests popin" data-title="7 tests cover line 137" 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;AdminTest::testAdminPassword&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;ModelBaseTest::testInstallFailure&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="137"></a><a href="#137">137</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;ip&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">ip</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
      <tr class="covered-by-large-tests popin" data-title="1 test covers line 138" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="138"></a><a href="#138">138</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;controller&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">controller</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
@@ -331,15 +352,23 @@
      <tr class="warning"><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="144"></a><a href="#144">144</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;\Tools\Context&nbsp;context</span></td></tr>
-     <tr><td><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Get&nbsp;the&nbsp;last&nbsp;Context&nbsp;instance</span></td></tr>
-     <tr><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="147"></a><a href="#147">147</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">getContext</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 149" 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;AdminTest::testAdminPassword&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;ModelBaseTest::testInstallFailure&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="149"></a><a href="#149">149</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">self</span><span class="default">::</span><span class="default">$instance</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="144"></a><a href="#144">144</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Check&nbsp;if&nbsp;executed&nbsp;from&nbsp;phpUnit</span></td></tr>
+     <tr><td><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="146"></a><a href="#146">146</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">function</span><span class="default">&nbsp;</span><span class="default">isTestingEnvironment</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="147"></a><a href="#147">147</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 148" data-content="&lt;ul&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::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="148"></a><a href="#148">148</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="keyword">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="keyword">[</span><span class="default">&quot;phpUnit&quot;</span><span class="keyword">]</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="keyword">[</span><span class="default">&quot;phpUnit&quot;</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;\Tools\Context&nbsp;context</span></td></tr>
+     <tr><td><div align="right"><a name="153"></a><a href="#153">153</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Get&nbsp;the&nbsp;last&nbsp;Context&nbsp;instance</span></td></tr>
+     <tr><td><div align="right"><a name="154"></a><a href="#154">154</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="155"></a><a href="#155">155</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">getContext</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="156"></a><a href="#156">156</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 157" 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;AdminTest::testAdminPassword&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;ModelBaseTest::testInstallFailure&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="157"></a><a href="#157">157</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">self</span><span class="default">::</span><span class="default">$instance</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="158"></a><a href="#158">158</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="160"></a><a href="#160">160</a></div></td><td class="codeLine"></td></tr>
 
     </tbody>
    </table>
@@ -352,7 +381,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/tools/HookEvent.php.html

@@ -213,7 +213,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 10 - 10
doc/coverage/tools/Hooks.php.html

@@ -267,9 +267,9 @@
      <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
      <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;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__construct</span><span class="keyword">(</span><span class="keyword">&amp;</span><span class="default">$context</span><span class="keyword">)</span></td></tr>
      <tr><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;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 38" 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;ModelBaseTest::testInstallFailure&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="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 39" 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;ModelBaseTest::testInstallFailure&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="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">currentHook</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>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 40" 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;ModelBaseTest::testInstallFailure&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="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="8 tests cover line 38" 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;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&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="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="8 tests cover line 39" 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;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&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="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">currentHook</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>
+     <tr class="covered-by-large-tests popin" data-title="8 tests cover line 40" 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;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&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="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
      <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;\Tool\AModule&nbsp;$module</span></td></tr>
@@ -293,8 +293,8 @@
      <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
      <tr><td><div align="right"><a name="62"></a><a href="#62">62</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">function</span><span class="default">&nbsp;</span><span class="default">trigger</span><span class="keyword">(</span><span class="default">$hookName</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">null</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 64" 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;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="64"></a><a href="#64">64</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">$this</span><span class="default">-&gt;</span><span class="default">hooks</span><span class="keyword">[</span><span class="default">$hookName</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 65" 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;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="65"></a><a href="#65">65</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="default">0</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 64" 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::testInstall&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;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testEmptyTable&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="64"></a><a href="#64">64</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">$this</span><span class="default">-&gt;</span><span class="default">hooks</span><span class="keyword">[</span><span class="default">$hookName</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 65" 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::testInstall&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;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testEmptyTable&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="65"></a><a href="#65">65</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="default">0</span><span class="keyword">;</span></td></tr>
      <tr class="danger"><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$hookEvent</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">HookEvent</span><span class="keyword">(</span><span class="default">$hookName</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
      <tr class="danger"><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">array_push</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">currentHook</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$hookEvent</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
      <tr class="danger"><td><div align="right"><a name="68"></a><a href="#68">68</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">0</span><span class="keyword">;</span></td></tr>
@@ -329,10 +329,10 @@
      <tr><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
      <tr><td><div align="right"><a name="98"></a><a href="#98">98</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">function</span><span class="default">&nbsp;</span><span class="default">loadHooks</span><span class="keyword">(</span><span class="default">$hookEntities</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 100" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hooks</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>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 101" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="101"></a><a href="#101">101</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">$hookEntities</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>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 102" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="102"></a><a href="#102">102</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">$this</span><span class="default">-&gt;</span><span class="default">hooks</span><span class="keyword">[</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">hookName</span><span class="keyword">]</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">(int)</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">module_id</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 103" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 100" 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="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hooks</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>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 101" 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="101"></a><a href="#101">101</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">$hookEntities</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>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 102" 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="102"></a><a href="#102">102</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">$this</span><span class="default">-&gt;</span><span class="default">hooks</span><span class="keyword">[</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">hookName</span><span class="keyword">]</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">(int)</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">module_id</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 103" 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="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
      <tr><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Getter</span></td></tr>
@@ -359,7 +359,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 230 - 154
doc/coverage/tools/ModuleManager.php.html

@@ -51,23 +51,23 @@
 </td>
       <td class="danger small"><div align="right">0.00%</div></td>
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="71.43" aria-valuemin="0" aria-valuemax="100" style="width: 71.43%">
+           <span class="sr-only">71.43% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;5</div></td>
-      <td class="danger small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="19.51" aria-valuemin="0" aria-valuemax="100" style="width: 19.51%">
-           <span class="sr-only">19.51% covered (danger)</span>
+      <td class="warning small"><div align="right">71.43%</div></td>
+      <td class="warning small"><div align="right">5&nbsp;/&nbsp;7</div></td>
+      <td class="warning small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="81.67" aria-valuemin="0" aria-valuemax="100" style="width: 81.67%">
+           <span class="sr-only">81.67% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">19.51%</div></td>
-      <td class="danger small"><div align="right">8&nbsp;/&nbsp;41</div></td>
+      <td class="warning small"><div align="right">81.67%</div></td>
+      <td class="warning small"><div align="right">49&nbsp;/&nbsp;60</div></td>
      </tr>
 
      <tr>
@@ -80,69 +80,111 @@
 </td>
       <td class="danger small"><div align="right">0.00%</div></td>
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="71.43" aria-valuemin="0" aria-valuemax="100" style="width: 71.43%">
+           <span class="sr-only">71.43% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;5</div></td>
-      <td class="danger small">186.94</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="19.51" aria-valuemin="0" aria-valuemax="100" style="width: 19.51%">
-           <span class="sr-only">19.51% covered (danger)</span>
+      <td class="warning small"><div align="right">71.43%</div></td>
+      <td class="warning small"><div align="right">5&nbsp;/&nbsp;7</div></td>
+      <td class="warning small">26.26</td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="81.67" aria-valuemin="0" aria-valuemax="100" style="width: 81.67%">
+           <span class="sr-only">81.67% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">19.51%</div></td>
-      <td class="danger small"><div align="right">8&nbsp;/&nbsp;41</div></td>
+      <td class="warning small"><div align="right">81.67%</div></td>
+      <td class="warning small"><div align="right">49&nbsp;/&nbsp;60</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#38"><abbr title="__construct(&amp;$context)">__construct</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#38"><abbr title="__construct(&amp;$context)">__construct</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">5.26</td>
-      <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="57.14" aria-valuemin="0" aria-valuemax="100" style="width: 57.14%">
-           <span class="sr-only">57.14% covered (warning)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">4</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">57.14%</div></td>
-      <td class="warning small"><div align="right">8&nbsp;/&nbsp;14</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">15&nbsp;/&nbsp;15</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#71"><abbr title="loadModule($path, $module)">loadModule</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#64"><abbr title="loadModuleFile($path)">loadModuleFile</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">12</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">3</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;7</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">5&nbsp;/&nbsp;5</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#87"><abbr title="listAvailableModules()">listAvailableModules</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#83"><abbr title="loadModule($path, $module)">loadModule</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
+         </div>
+       </div>
+</td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">2</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
+         </div>
+       </div>
+</td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">6&nbsp;/&nbsp;6</div></td>
+     </tr>
+
+     <tr>
+      <td class="success" colspan="4">&nbsp;<a href="#98"><abbr title="install($modulename)">install</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
+         </div>
+       </div>
+</td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">3</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
+         </div>
+       </div>
+</td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">14&nbsp;/&nbsp;14</div></td>
+     </tr>
+
+     <tr>
+      <td class="danger" colspan="4">&nbsp;<a href="#121"><abbr title="listAvailableModules()">listAvailableModules</abbr></a></td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
            <span class="sr-only">0.00% covered (danger)</span>
@@ -163,28 +205,28 @@
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#106"><abbr title="getModuleFromId($id)">getModuleFromId</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#140"><abbr title="getModuleFromId($id)">getModuleFromId</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">12</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">3</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;5</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">5&nbsp;/&nbsp;5</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#119"><abbr title="__get($key)">__get</abbr></a></td>
+      <td class="danger" colspan="4">&nbsp;<a href="#153"><abbr title="__get($key)">__get</abbr></a></td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
            <span class="sr-only">0.00% covered (danger)</span>
@@ -193,15 +235,15 @@
 </td>
       <td class="danger small"><div align="right">0.00%</div></td>
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">12</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="danger small">3.07</td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="80.00" aria-valuemin="0" aria-valuemax="100" style="width: 80.00%">
+           <span class="sr-only">80.00% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;5</div></td>
+      <td class="warning small"><div align="right">80.00%</div></td>
+      <td class="warning small"><div align="right">4&nbsp;/&nbsp;5</div></td>
      </tr>
 
 
@@ -248,98 +290,132 @@
      <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
      <tr><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;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__construct</span><span class="keyword">(</span><span class="keyword">&amp;</span><span class="default">$context</span><span class="keyword">)</span></td></tr>
      <tr><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;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 40" 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;/ul&gt;" data-placement="bottom" data-html="true"><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="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 41" 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;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$modulesRoot</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="default">-&gt;</span><span class="default">router</span><span class="default">-&gt;</span><span class="default">modulesPath</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 42" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$modules</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Module</span><span class="default">::</span><span class="default">getActivated</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 43" 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;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$ids</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>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 44" 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;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$modules</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>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 40" 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="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="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 41" 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="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$modulesRoot</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="default">-&gt;</span><span class="default">router</span><span class="default">-&gt;</span><span class="default">modulesPath</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 42" 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="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$modules</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Module</span><span class="default">::</span><span class="default">getActivated</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 43" 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="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$ids</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>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 44" 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="44"></a><a href="#44">44</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">$modules</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>
      <tr><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="keyword">{</span></td></tr>
-     <tr class="danger"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$modulePath</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">{</span><span class="string">$modulesRoot</span><span class="keyword">}</span><span class="string">{</span><span class="string">$i</span><span class="string">-&gt;</span><span class="string">directory</span><span class="keyword">}</span><span class="string">/main.php</span><span class="string">&quot;</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">file_exists</span><span class="keyword">(</span><span class="default">$modulePath</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">loadModule</span><span class="keyword">(</span><span class="default">$modulePath</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$ids</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">$i</span><span class="default">-&gt;</span><span class="default">id</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><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="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 46" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$modulePath</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">{</span><span class="string">$modulesRoot</span><span class="keyword">}</span><span class="string">{</span><span class="string">$i</span><span class="string">-&gt;</span><span class="string">directory</span><span class="keyword">}</span><span class="string">/main.php</span><span class="string">&quot;</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 47" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">file_exists</span><span class="keyword">(</span><span class="default">$modulePath</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">loadModule</span><span class="keyword">(</span><span class="default">$modulePath</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 48" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 49" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$ids</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">$i</span><span class="default">-&gt;</span><span class="default">id</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 50" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&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="keyword">}</span></td></tr>
      <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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span></td></tr>
      <tr><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">{</span></td></tr>
-     <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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">die</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">&quot;out&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">active</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$i</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>
-     <tr><td><div align="right"><a name="56"></a><a href="#56">56</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">}</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 57" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 58" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$context</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="default">-&gt;</span><span class="default">loadHooks</span><span class="keyword">(</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">ModuleHook</span><span class="default">::</span><span class="default">getModules</span><span class="keyword">(</span><span class="default">$ids</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 59" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$path&nbsp;path&nbsp;to&nbsp;module's&nbsp;main&nbsp;file</span></td></tr>
-     <tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;\Entity\Module&nbsp;$module&nbsp;module's&nbsp;database&nbsp;object&nbsp;to&nbsp;load</span></td></tr>
-     <tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;/core/models/Module.php</span></td></tr>
-     <tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;TRUE&nbsp;on&nbsp;success</span></td></tr>
-     <tr><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Will&nbsp;try&nbsp;to&nbsp;load&nbsp;module&nbsp;located&nbsp;at&nbsp;$path.</span></td></tr>
-     <tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;This&nbsp;function&nbsp;will&nbsp;include&nbsp;the&nbsp;main.php&nbsp;file&nbsp;located&nbsp;in&nbsp;the&nbsp;module's&nbsp;directory</span></td></tr>
-     <tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;The&nbsp;file&nbsp;MUST&nbsp;return&nbsp;an&nbsp;AModule&nbsp;object&nbsp;to&nbsp;be&nbsp;considered&nbsp;as&nbsp;successfull</span></td></tr>
-     <tr><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;/core/tools/AModule.php</span></td></tr>
-     <tr><td><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="71"></a><a href="#71">71</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">function</span><span class="default">&nbsp;</span><span class="default">loadModule</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$module</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$mod</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">include_once</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="74"></a><a href="#74">74</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">!</span><span class="default">$mod</span><span class="default">&nbsp;</span><span class="default">||</span><span class="default">&nbsp;</span><span class="keyword">!</span><span class="keyword">(</span><span class="default">$mod</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Tools</span><span class="default">\</span><span class="default">AModule</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="75"></a><a href="#75">75</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="default">false</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$mod</span><span class="default">-&gt;</span><span class="default">setContext</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$mod</span><span class="default">-&gt;</span><span class="default">setEntity</span><span class="keyword">(</span><span class="default">$module</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">modules</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">$mod</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="79"></a><a href="#79">79</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>
-     <tr class="warning"><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/*</span></td></tr>
-     <tr><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;TODO&nbsp;revoir&nbsp;tout</span></td></tr>
-     <tr><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;array(AModule)</span></td></tr>
-     <tr><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Will&nbsp;load&nbsp;every&nbsp;modules,&nbsp;and&nbsp;return&nbsp;them.</span></td></tr>
-     <tr><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="87"></a><a href="#87">87</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">function</span><span class="default">&nbsp;</span><span class="default">listAvailableModules</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$modulesRoot</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="default">-&gt;</span><span class="default">router</span><span class="default">-&gt;</span><span class="default">modulesPath</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="90"></a><a href="#90">90</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="keyword">array</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$modules</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">scandir</span><span class="keyword">(</span><span class="default">$modulesRoot</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">SCANDIR_SORT_NONE</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="92"></a><a href="#92">92</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">$modules</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>
-     <tr><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="94"></a><a href="#94">94</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">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$modulesRoot</span><span class="keyword">.</span><span class="default">$i</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="95"></a><a href="#95">95</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">'.'</span><span class="default">&nbsp;</span><span class="default">||</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">'..'</span><span class="default">&nbsp;</span><span class="default">||</span><span class="default">&nbsp;</span><span class="keyword">!</span><span class="default">is_dir</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">continue</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="97"></a><a href="#97">97</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">$this</span><span class="default">-&gt;</span><span class="default">loadModule</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;int&nbsp;$id</span></td></tr>
-     <tr><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;AModule&nbsp;on&nbsp;success,&nbsp;FALSE&nbsp;on&nbsp;failure&nbsp;(no&nbsp;such&nbsp;ID&nbsp;/&nbsp;module&nbsp;not&nbsp;loaded)</span></td></tr>
-     <tr><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Get&nbsp;the&nbsp;module&nbsp;identified&nbsp;with&nbsp;id&nbsp;ID</span></td></tr>
-     <tr><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="106"></a><a href="#106">106</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">function</span><span class="default">&nbsp;</span><span class="default">getModuleFromId</span><span class="keyword">(</span><span class="default">$id</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="108"></a><a href="#108">108</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">$this</span><span class="default">-&gt;</span><span class="default">modules</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>
-     <tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="110"></a><a href="#110">110</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">entity</span><span class="default">-&gt;</span><span class="default">id</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">$id</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&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="default">$i</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="113"></a><a href="#113">113</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">FALSE</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 53" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">active</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 54" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$i</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>
+     <tr><td><div align="right"><a name="55"></a><a href="#55">55</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">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 56" 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="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 57" 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="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$context</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="default">-&gt;</span><span class="default">loadHooks</span><span class="keyword">(</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">ModuleHook</span><span class="default">::</span><span class="default">getModules</span><span class="keyword">(</span><span class="default">$ids</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 58" 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="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$path</span></td></tr>
+     <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;\Tools\AModule&nbsp;loaded&nbsp;module&nbsp;(or&nbsp;false&nbsp;on&nbsp;error)</span></td></tr>
+     <tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="64"></a><a href="#64">64</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">function</span><span class="default">&nbsp;</span><span class="default">loadModuleFile</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 66" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$mod</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">include_once</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 67" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="67"></a><a href="#67">67</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">!</span><span class="default">$mod</span><span class="default">&nbsp;</span><span class="default">||</span><span class="default">&nbsp;</span><span class="keyword">!</span><span class="keyword">(</span><span class="default">$mod</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Tools</span><span class="default">\</span><span class="default">AModule</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 68" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="68"></a><a href="#68">68</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="default">false</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 69" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$mod</span><span class="default">-&gt;</span><span class="default">setContext</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 70" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="70"></a><a href="#70">70</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">$mod</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$path&nbsp;path&nbsp;to&nbsp;module's&nbsp;main&nbsp;file</span></td></tr>
+     <tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;\Entity\Module&nbsp;$module&nbsp;module's&nbsp;database&nbsp;object&nbsp;to&nbsp;load</span></td></tr>
+     <tr><td><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;/core/models/Module.php</span></td></tr>
+     <tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;TRUE&nbsp;on&nbsp;success</span></td></tr>
+     <tr><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Will&nbsp;try&nbsp;to&nbsp;load&nbsp;module&nbsp;located&nbsp;at&nbsp;$path.</span></td></tr>
+     <tr><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;This&nbsp;function&nbsp;will&nbsp;include&nbsp;the&nbsp;main.php&nbsp;file&nbsp;located&nbsp;in&nbsp;the&nbsp;module's&nbsp;directory</span></td></tr>
+     <tr><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;The&nbsp;file&nbsp;MUST&nbsp;return&nbsp;an&nbsp;AModule&nbsp;object&nbsp;to&nbsp;be&nbsp;considered&nbsp;as&nbsp;successfull</span></td></tr>
+     <tr><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;/core/tools/AModule.php</span></td></tr>
+     <tr><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="83"></a><a href="#83">83</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">function</span><span class="default">&nbsp;</span><span class="default">loadModule</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$module</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 85" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$mod</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">loadModuleFile</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 86" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="86"></a><a href="#86">86</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">$mod</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>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 87" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="87"></a><a href="#87">87</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="default">false</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 88" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$mod</span><span class="default">-&gt;</span><span class="default">setEntity</span><span class="keyword">(</span><span class="default">$module</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 89" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">modules</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">$mod</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 90" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="90"></a><a href="#90">90</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>
+     <tr class="warning"><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$modulename</span></td></tr>
+     <tr><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;\tools\AModule|false&nbsp;on&nbsp;failure</span></td></tr>
+     <tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Install&nbsp;the&nbsp;module&nbsp;located&nbsp;in&nbsp;{modulePath}/modulename/modulename.php</span></td></tr>
+     <tr><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="98"></a><a href="#98">98</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">function</span><span class="default">&nbsp;</span><span class="default">install</span><span class="keyword">(</span><span class="default">$modulename</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 100" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$entity</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">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Module</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 101" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$entity</span><span class="default">-&gt;</span><span class="default">name</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$modulename</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 102" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$entity</span><span class="default">-&gt;</span><span class="default">directory</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$modulename</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 103" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$entity</span><span class="default">-&gt;</span><span class="default">active</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 104" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$module</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">loadModuleFile</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">-&gt;</span><span class="default">router</span><span class="default">-&gt;</span><span class="default">modulesPath</span><span class="keyword">.</span><span class="default">$modulename</span><span class="keyword">.</span><span class="default">'/main.php'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 105" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="105"></a><a href="#105">105</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">$module</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>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 106" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="106"></a><a href="#106">106</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="default">false</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 107" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$entity</span><span class="default">-&gt;</span><span class="default">name</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$module</span><span class="default">-&gt;</span><span class="default">getName</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 108" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$entity</span><span class="default">-&gt;</span><span class="default">description</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$module</span><span class="default">-&gt;</span><span class="default">getDescription</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 109" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="109"></a><a href="#109">109</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">$module</span><span class="default">-&gt;</span><span class="default">install</span><span class="keyword">(</span><span class="keyword">)</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>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 110" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="110"></a><a href="#110">110</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="default">false</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 111" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$entity</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>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 112" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$module</span><span class="default">-&gt;</span><span class="default">setEntity</span><span class="keyword">(</span><span class="default">$entity</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 113" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="113"></a><a href="#113">113</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">$module</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Getter</span></td></tr>
-     <tr><td><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="119"></a><a href="#119">119</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">function</span><span class="default">&nbsp;</span><span class="default">__get</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">switch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="123"></a><a href="#123">123</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;modules&quot;</span><span class="keyword">:</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&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="default">$this</span><span class="default">-&gt;</span><span class="default">modules</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="126"></a><a href="#126">126</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">substr</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">0</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">4</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">&quot;_id_&quot;</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="127"></a><a href="#127">127</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="default">$this</span><span class="default">-&gt;</span><span class="default">getModuleFromId</span><span class="keyword">(</span><span class="default">(int)</span><span class="default">&nbsp;</span><span class="default">substr</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">4</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="128"></a><a href="#128">128</a></div></td><td class="codeLine"><span class="default">&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="string">&quot;</span><span class="string">Cannot&nbsp;access&nbsp;attribute&nbsp;</span><span class="string">{</span><span class="string">$key</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/*</span></td></tr>
+     <tr><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;TODO&nbsp;revoir&nbsp;tout</span></td></tr>
+     <tr><td><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;array(AModule)</span></td></tr>
+     <tr><td><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Will&nbsp;load&nbsp;every&nbsp;modules,&nbsp;and&nbsp;return&nbsp;them.</span></td></tr>
+     <tr><td><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="121"></a><a href="#121">121</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">function</span><span class="default">&nbsp;</span><span class="default">listAvailableModules</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$modulesRoot</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="default">-&gt;</span><span class="default">router</span><span class="default">-&gt;</span><span class="default">modulesPath</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="124"></a><a href="#124">124</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="keyword">array</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$modules</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">scandir</span><span class="keyword">(</span><span class="default">$modulesRoot</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">SCANDIR_SORT_NONE</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="126"></a><a href="#126">126</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">$modules</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>
+     <tr><td><div align="right"><a name="127"></a><a href="#127">127</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="128"></a><a href="#128">128</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">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$modulesRoot</span><span class="keyword">.</span><span class="default">$i</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="129"></a><a href="#129">129</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">'.'</span><span class="default">&nbsp;</span><span class="default">||</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">'..'</span><span class="default">&nbsp;</span><span class="default">||</span><span class="default">&nbsp;</span><span class="keyword">!</span><span class="default">is_dir</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">continue</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="131"></a><a href="#131">131</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">$this</span><span class="default">-&gt;</span><span class="default">loadModule</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;int&nbsp;$id</span></td></tr>
+     <tr><td><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;AModule&nbsp;on&nbsp;success,&nbsp;FALSE&nbsp;on&nbsp;failure&nbsp;(no&nbsp;such&nbsp;ID&nbsp;/&nbsp;module&nbsp;not&nbsp;loaded)</span></td></tr>
+     <tr><td><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Get&nbsp;the&nbsp;module&nbsp;identified&nbsp;with&nbsp;id&nbsp;ID</span></td></tr>
+     <tr><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="140"></a><a href="#140">140</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">function</span><span class="default">&nbsp;</span><span class="default">getModuleFromId</span><span class="keyword">(</span><span class="default">$id</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 142" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="142"></a><a href="#142">142</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">$this</span><span class="default">-&gt;</span><span class="default">modules</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>
+     <tr><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 144" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="144"></a><a href="#144">144</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">entity</span><span class="default">-&gt;</span><span class="default">id</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">$id</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 145" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&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="default">$i</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 146" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 147" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="147"></a><a href="#147">147</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">FALSE</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Getter</span></td></tr>
+     <tr><td><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="153"></a><a href="#153">153</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">function</span><span class="default">&nbsp;</span><span class="default">__get</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="154"></a><a href="#154">154</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr><td><div align="right"><a name="155"></a><a href="#155">155</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">switch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="156"></a><a href="#156">156</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 157" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="157"></a><a href="#157">157</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">case</span><span class="default">&nbsp;</span><span class="default">&quot;modules&quot;</span><span class="keyword">:</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 158" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="158"></a><a href="#158">158</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&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="default">$this</span><span class="default">-&gt;</span><span class="default">modules</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 160" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="160"></a><a href="#160">160</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">substr</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">0</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">4</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">&quot;_id_&quot;</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 161" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="161"></a><a href="#161">161</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="default">$this</span><span class="default">-&gt;</span><span class="default">getModuleFromId</span><span class="keyword">(</span><span class="default">(int)</span><span class="default">&nbsp;</span><span class="default">substr</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">4</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="162"></a><a href="#162">162</a></div></td><td class="codeLine"><span class="default">&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="string">&quot;</span><span class="string">Cannot&nbsp;access&nbsp;attribute&nbsp;</span><span class="string">{</span><span class="string">$key</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="163"></a><a href="#163">163</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="164"></a><a href="#164">164</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="165"></a><a href="#165">165</a></div></td><td class="codeLine"></td></tr>
 
     </tbody>
    </table>
@@ -352,7 +428,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 263 - 217
doc/coverage/tools/Router.php.html

@@ -51,23 +51,23 @@
 </td>
       <td class="danger small"><div align="right">0.00%</div></td>
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="88.89" aria-valuemin="0" aria-valuemax="100" style="width: 88.89%">
-           <span class="sr-only">88.89% covered (warning)</span>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="90.00" aria-valuemin="0" aria-valuemax="100" style="width: 90.00%">
+           <span class="sr-only">90.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">88.89%</div></td>
-      <td class="warning small"><div align="right">8&nbsp;/&nbsp;9</div></td>
-      <td class="warning small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
+      <td class="success small"><div align="right">90.00%</div></td>
+      <td class="success small"><div align="right">9&nbsp;/&nbsp;10</div></td>
+      <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
       <td class="success big">       <div class="progress">
-         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="93.94" aria-valuemin="0" aria-valuemax="100" style="width: 93.94%">
-           <span class="sr-only">93.94% covered (success)</span>
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="94.52" aria-valuemin="0" aria-valuemax="100" style="width: 94.52%">
+           <span class="sr-only">94.52% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="success small"><div align="right">93.94%</div></td>
-      <td class="success small"><div align="right">62&nbsp;/&nbsp;66</div></td>
+      <td class="success small"><div align="right">94.52%</div></td>
+      <td class="success small"><div align="right">69&nbsp;/&nbsp;73</div></td>
      </tr>
 
      <tr>
@@ -80,27 +80,27 @@
 </td>
       <td class="danger small"><div align="right">0.00%</div></td>
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="88.89" aria-valuemin="0" aria-valuemax="100" style="width: 88.89%">
-           <span class="sr-only">88.89% covered (warning)</span>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="90.00" aria-valuemin="0" aria-valuemax="100" style="width: 90.00%">
+           <span class="sr-only">90.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">88.89%</div></td>
-      <td class="warning small"><div align="right">8&nbsp;/&nbsp;9</div></td>
-      <td class="warning small">35.27</td>
+      <td class="success small"><div align="right">90.00%</div></td>
+      <td class="success small"><div align="right">9&nbsp;/&nbsp;10</div></td>
+      <td class="success small">39.25</td>
       <td class="success big">       <div class="progress">
-         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="93.94" aria-valuemin="0" aria-valuemax="100" style="width: 93.94%">
-           <span class="sr-only">93.94% covered (success)</span>
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="94.52" aria-valuemin="0" aria-valuemax="100" style="width: 94.52%">
+           <span class="sr-only">94.52% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="success small"><div align="right">93.94%</div></td>
-      <td class="success small"><div align="right">62&nbsp;/&nbsp;66</div></td>
+      <td class="success small"><div align="right">94.52%</div></td>
+      <td class="success small"><div align="right">69&nbsp;/&nbsp;73</div></td>
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#76"><abbr title="__construct($server, $context)">__construct</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#82"><abbr title="__construct($server, $context)">__construct</abbr></a></td>
       <td class="success big">       <div class="progress">
          <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
            <span class="sr-only">100.00% covered (success)</span>
@@ -117,11 +117,11 @@
        </div>
 </td>
       <td class="success small"><div align="right">100.00%</div></td>
-      <td class="success small"><div align="right">8&nbsp;/&nbsp;8</div></td>
+      <td class="success small"><div align="right">9&nbsp;/&nbsp;9</div></td>
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#92"><abbr title="init($server)">init</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#99"><abbr title="init($server)">init</abbr></a></td>
       <td class="success big">       <div class="progress">
          <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
            <span class="sr-only">100.00% covered (success)</span>
@@ -142,7 +142,7 @@
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#111"><abbr title="serveUrl()">serveUrl</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#118"><abbr title="serveUrl()">serveUrl</abbr></a></td>
       <td class="success big">       <div class="progress">
          <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
            <span class="sr-only">100.00% covered (success)</span>
@@ -163,7 +163,7 @@
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#135"><abbr title="createController($className, $params)">createController</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#142"><abbr title="createController($className, $params)">createController</abbr></a></td>
       <td class="success big">       <div class="progress">
          <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
            <span class="sr-only">100.00% covered (success)</span>
@@ -184,7 +184,7 @@
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#160"><abbr title="routeMatch($request, $route)">routeMatch</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#167"><abbr title="routeMatch($request, $route)">routeMatch</abbr></a></td>
       <td class="success big">       <div class="progress">
          <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
            <span class="sr-only">100.00% covered (success)</span>
@@ -205,7 +205,7 @@
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#186"><abbr title="prepareUrl()">prepareUrl</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#193"><abbr title="prepareUrl()">prepareUrl</abbr></a></td>
       <td class="success big">       <div class="progress">
          <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
            <span class="sr-only">100.00% covered (success)</span>
@@ -226,7 +226,7 @@
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#198"><abbr title="doRouteAdd($route, $controller)">doRouteAdd</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#205"><abbr title="doRouteAdd($route, $controller)">doRouteAdd</abbr></a></td>
       <td class="success big">       <div class="progress">
          <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
            <span class="sr-only">100.00% covered (success)</span>
@@ -247,7 +247,7 @@
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#213"><abbr title="routeAdd($route, $controller)">routeAdd</abbr></a></td>
+      <td class="danger" colspan="4">&nbsp;<a href="#220"><abbr title="routeAdd($route, $controller)">routeAdd</abbr></a></td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
            <span class="sr-only">0.00% covered (danger)</span>
@@ -268,7 +268,28 @@
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#223"><abbr title="__get($key)">__get</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#235"><abbr title="overrideUrl($type, $value)">overrideUrl</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
+         </div>
+       </div>
+</td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">2</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
+         </div>
+       </div>
+</td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">4&nbsp;/&nbsp;4</div></td>
+     </tr>
+
+     <tr>
+      <td class="success" colspan="4">&nbsp;<a href="#246"><abbr title="__get($key)">__get</abbr></a></td>
       <td class="success big">       <div class="progress">
          <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
            <span class="sr-only">100.00% covered (success)</span>
@@ -277,7 +298,7 @@
 </td>
       <td class="success small"><div align="right">100.00%</div></td>
       <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
-      <td class="success small">7</td>
+      <td class="success small">9</td>
       <td class="success big">       <div class="progress">
          <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
            <span class="sr-only">100.00% covered (success)</span>
@@ -285,7 +306,7 @@
        </div>
 </td>
       <td class="success small"><div align="right">100.00%</div></td>
-      <td class="success small"><div align="right">7&nbsp;/&nbsp;7</div></td>
+      <td class="success small"><div align="right">9&nbsp;/&nbsp;9</div></td>
      </tr>
 
 
@@ -346,190 +367,215 @@
      <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;</span><span class="keyword">private</span><span class="default">&nbsp;</span><span class="default">$routeParams</span><span class="keyword">;</span></td></tr>
      <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"></td></tr>
      <tr><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;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;string&nbsp;$modulePath</span></td></tr>
-     <tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Contains&nbsp;the&nbsp;module&nbsp;directory</span></td></tr>
-     <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;string&nbsp;$moduleUrl</span></td></tr>
-     <tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Contains&nbsp;the&nbsp;module&nbsp;Uri</span></td></tr>
-     <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;string&nbsp;$themePath</span></td></tr>
-     <tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Contains&nbsp;the&nbsp;theme&nbsp;directory</span></td></tr>
-     <tr><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;string&nbsp;$themeUrl</span></td></tr>
-     <tr><td><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Contains&nbsp;the&nbsp;theme&nbsp;Uri</span></td></tr>
-     <tr><td><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Create&nbsp;the&nbsp;router,&nbsp;initialize&nbsp;url&nbsp;and&nbsp;path</span></td></tr>
-     <tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="76"></a><a href="#76">76</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">function</span><span class="default">&nbsp;</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 78" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$pos</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">strrpos</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;SCRIPT_NAME&quot;</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;/&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 79" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$relativePath</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">(</span><span class="default">$pos</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">FALSE</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">?</span><span class="default">&nbsp;</span><span class="default">&quot;&quot;</span><span class="default">&nbsp;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="default">substr</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;SCRIPT_NAME&quot;</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">0</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$pos</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 80" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootPath</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;DOCUMENT_ROOT&quot;</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">$relativePath</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">&quot;/&quot;</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 81" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;REQUEST_SCHEME&quot;</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">&quot;://&quot;</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;HTTP_HOST&quot;</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">$relativePath</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&quot;/&quot;</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 82" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">requestUrl</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">substr</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;REQUEST_URI&quot;</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">count</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">-</span><span class="default">1</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 83" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 84" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">routes</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>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 85" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Called&nbsp;after&nbsp;database&nbsp;initialization</span></td></tr>
-     <tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Check&nbsp;the&nbsp;site&nbsp;url&nbsp;and&nbsp;redirect&nbsp;user&nbsp;if&nbsp;the&nbsp;HOST&nbsp;does&nbsp;not&nbsp;match</span></td></tr>
-     <tr><td><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;If&nbsp;the&nbsp;site&nbsp;url&nbsp;is&nbsp;not&nbsp;defined&nbsp;in&nbsp;database,&nbsp;do&nbsp;not&nbsp;redirect</span></td></tr>
-     <tr><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="92"></a><a href="#92">92</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">function</span><span class="default">&nbsp;</span><span class="default">init</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 94" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$siteUrl</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Config</span><span class="default">::</span><span class="default">getConfig</span><span class="keyword">(</span><span class="default">null</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;siteUrl&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;@codeCoverageIgnoreStart</span></td></tr>
-     <tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;This&nbsp;code&nbsp;is&nbsp;tested&nbsp;under&nbsp;another&nbsp;process</span></td></tr>
-     <tr><td><div align="right"><a name="97"></a><a href="#97">97</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">$siteUrl</span><span class="default">&nbsp;</span><span class="default">!=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;HTTP_HOST&quot;</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="default">$siteUrl</span><span class="default">&nbsp;</span><span class="default">!==</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr><td><div align="right"><a name="99"></a><a href="#99">99</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">header</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">location:&nbsp;http://</span><span class="string">{</span><span class="string">$siteUrl</span><span class="keyword">}</span><span class="string">{</span><span class="string">$server</span><span class="keyword">[</span><span class="string">'REQUEST_URI'</span><span class="keyword">]</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr><td><div align="right"><a name="100"></a><a href="#100">100</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">die</span><span class="keyword">;</span></td></tr>
-     <tr><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;@codeCoverageIgnoreEnd</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 103" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;\Controller\AController&nbsp;controller</span></td></tr>
-     <tr><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;/core/controller/AController.php</span></td></tr>
-     <tr><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Match&nbsp;request&nbsp;to&nbsp;a&nbsp;controller</span></td></tr>
-     <tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;return&nbsp;FALSE&nbsp;on&nbsp;failure&nbsp;(eg.&nbsp;404)</span></td></tr>
-     <tr><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="111"></a><a href="#111">111</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">function</span><span class="default">&nbsp;</span><span class="default">serveUrl</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//TODO&nbsp;trigger&nbsp;hook&nbsp;GET,&nbsp;POST</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 114" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">prepareUrl</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 115" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$requestParams</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">explode</span><span class="keyword">(</span><span class="default">&quot;/&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">requestUrl</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 116" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="116"></a><a href="#116">116</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">$this</span><span class="default">-&gt;</span><span class="default">routes</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>
-     <tr><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 118" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="118"></a><a href="#118">118</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">$routeParams</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">explode</span><span class="keyword">(</span><span class="default">&quot;/&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">[</span><span class="default">0</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 119" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="119"></a><a href="#119">119</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">$p</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">routeMatch</span><span class="keyword">(</span><span class="default">$requestParams</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$routeParams</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 120" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="120"></a><a href="#120">120</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$p</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>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 121" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">continue</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 122" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="122"></a><a href="#122">122</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">$controller</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">createController</span><span class="keyword">(</span><span class="default">$i</span><span class="keyword">[</span><span class="default">1</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$p</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr><td><div align="right"><a name="123"></a><a href="#123">123</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$controller</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 124" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&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="default">$controller</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 125" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 126" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="126"></a><a href="#126">126</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">false</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="127"></a><a href="#127">127</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="128"></a><a href="#128">128</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Create&nbsp;and&nbsp;return&nbsp;Controller&nbsp;for&nbsp;the&nbsp;given&nbsp;route</span></td></tr>
-     <tr><td><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;$className</span></td></tr>
-     <tr><td><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;array&nbsp;$routeParameters</span></td></tr>
-     <tr><td><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;\Tools\AController&nbsp;on&nbsp;succes,&nbsp;false&nbsp;otherwise</span></td></tr>
-     <tr><td><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="135"></a><a href="#135">135</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">function</span><span class="default">&nbsp;</span><span class="default">createController</span><span class="keyword">(</span><span class="default">$className</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 137" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="137"></a><a href="#137">137</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">!</span><span class="default">class_exists</span><span class="keyword">(</span><span class="default">$className</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 138" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="138"></a><a href="#138">138</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="default">false</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 139" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">routeParams</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 140" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="140"></a><a href="#140">140</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">null</span><span class="keyword">;</span></td></tr>
-     <tr><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span></td></tr>
-     <tr><td><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 143" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="143"></a><a href="#143">143</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">$result</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">$className</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 144" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="144"></a><a href="#144">144</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Tools</span><span class="default">\</span><span class="default">AController</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 145" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&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="default">false</span><span class="keyword">;</span></td></tr>
-     <tr><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 147" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="147"></a><a href="#147">147</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">catch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">\</span><span class="default">Exception</span><span class="default">\</span><span class="default">Error404</span><span class="default">&nbsp;</span><span class="default">$e</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 149" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="149"></a><a href="#149">149</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="default">false</span><span class="keyword">;</span></td></tr>
-     <tr><td><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 151" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="151"></a><a href="#151">151</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">$result</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="153"></a><a href="#153">153</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="154"></a><a href="#154">154</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="155"></a><a href="#155">155</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Check&nbsp;if&nbsp;the&nbsp;request&nbsp;match&nbsp;route</span></td></tr>
-     <tr><td><div align="right"><a name="156"></a><a href="#156">156</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;array&nbsp;$request&nbsp;User&nbsp;request</span></td></tr>
-     <tr><td><div align="right"><a name="157"></a><a href="#157">157</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;array&nbsp;$route&nbsp;Route&nbsp;to&nbsp;check</span></td></tr>
-     <tr><td><div align="right"><a name="158"></a><a href="#158">158</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;array&nbsp;on&nbsp;success,&nbsp;false&nbsp;on&nbsp;failure</span></td></tr>
-     <tr><td><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="160"></a><a href="#160">160</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">function</span><span class="default">&nbsp;</span><span class="default">routeMatch</span><span class="keyword">(</span><span class="default">$request</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$route</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="161"></a><a href="#161">161</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 162" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="162"></a><a href="#162">162</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">count</span><span class="keyword">(</span><span class="default">$request</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 163" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="163"></a><a href="#163">163</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$params</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>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 164" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="164"></a><a href="#164">164</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">$i</span><span class="default">&nbsp;</span><span class="default">!=</span><span class="default">&nbsp;</span><span class="default">count</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 165" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="165"></a><a href="#165">165</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="default">false</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 166" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="166"></a><a href="#166">166</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">while</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$i</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="167"></a><a href="#167">167</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 168" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="168"></a><a href="#168">168</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">$i</span><span class="default">--</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 169" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="169"></a><a href="#169">169</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">''</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">''</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 170" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="170"></a><a href="#170">170</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">continue</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 171" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="171"></a><a href="#171">171</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">''</span><span class="default">&nbsp;</span><span class="default">||</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">''</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 172" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="172"></a><a href="#172">172</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&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="default">false</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 173" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="173"></a><a href="#173">173</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">0</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">!=</span><span class="default">&nbsp;</span><span class="default">':'</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">!=</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 174" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="174"></a><a href="#174">174</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&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="default">false</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 175" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="175"></a><a href="#175">175</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">0</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">':'</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 176" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="176"></a><a href="#176">176</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$params</span><span class="keyword">[</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</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">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 177" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="177"></a><a href="#177">177</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">$params</span><span class="keyword">[</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="keyword">-</span><span class="default">1</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 178" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="178"></a><a href="#178">178</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 179" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="179"></a><a href="#179">179</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">array_reverse</span><span class="keyword">(</span><span class="default">$params</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="180"></a><a href="#180">180</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="181"></a><a href="#181">181</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="182"></a><a href="#182">182</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="183"></a><a href="#183">183</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Append&nbsp;local&nbsp;routes&nbsp;to&nbsp;router</span></td></tr>
-     <tr><td><div align="right"><a name="184"></a><a href="#184">184</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Will&nbsp;load&nbsp;CMS&nbsp;pages,&nbsp;categories&nbsp;page,&nbsp;products&nbsp;page,&nbsp;cart&nbsp;pages,&nbsp;etc.</span></td></tr>
-     <tr><td><div align="right"><a name="185"></a><a href="#185">185</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="186"></a><a href="#186">186</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">function</span><span class="default">&nbsp;</span><span class="default">prepareUrl</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="187"></a><a href="#187">187</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 188" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="188"></a><a href="#188">188</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">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Cms</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 189" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="189"></a><a href="#189">189</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$pages</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="default">null</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;order&quot;</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 190" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="190"></a><a href="#190">190</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">$pages</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>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 191" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="191"></a><a href="#191">191</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">$this</span><span class="default">-&gt;</span><span class="default">doRouteAdd</span><span class="keyword">(</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">shurl</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">controller</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 192" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="192"></a><a href="#192">192</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="193"></a><a href="#193">193</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="194"></a><a href="#194">194</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="195"></a><a href="#195">195</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Add&nbsp;a&nbsp;route&nbsp;to&nbsp;the&nbsp;internal&nbsp;route&nbsp;list</span></td></tr>
-     <tr><td><div align="right"><a name="196"></a><a href="#196">196</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Internal&nbsp;procedure</span></td></tr>
-     <tr><td><div align="right"><a name="197"></a><a href="#197">197</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="198"></a><a href="#198">198</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">function</span><span class="default">&nbsp;</span><span class="default">doRouteAdd</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="199"></a><a href="#199">199</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 200" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="200"></a><a href="#200">200</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">routes</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="keyword">array</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 201" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="201"></a><a href="#201">201</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="202"></a><a href="#202">202</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="203"></a><a href="#203">203</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="204"></a><a href="#204">204</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$route&nbsp;Uri&nbsp;to&nbsp;match&nbsp;the&nbsp;controller</span></td></tr>
-     <tr><td><div align="right"><a name="205"></a><a href="#205">205</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Uri&nbsp;can&nbsp;be&nbsp;formatted&nbsp;as&nbsp;'/:param/static'.</span></td></tr>
-     <tr><td><div align="right"><a name="206"></a><a href="#206">206</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;expl.&nbsp;'/product/:id/'</span></td></tr>
-     <tr><td><div align="right"><a name="207"></a><a href="#207">207</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$controller&nbsp;Controller&nbsp;class&nbsp;name.</span></td></tr>
-     <tr><td><div align="right"><a name="208"></a><a href="#208">208</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;new&nbsp;$controller()&nbsp;MUST&nbsp;return&nbsp;a&nbsp;\Tool\AController&nbsp;instance</span></td></tr>
-     <tr><td><div align="right"><a name="209"></a><a href="#209">209</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
-     <tr><td><div align="right"><a name="210"></a><a href="#210">210</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Add&nbsp;a&nbsp;route&nbsp;and&nbsp;a&nbsp;Controller&nbsp;to&nbsp;the&nbsp;list</span></td></tr>
-     <tr><td><div align="right"><a name="211"></a><a href="#211">211</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Can&nbsp;only&nbsp;be&nbsp;called&nbsp;from&nbsp;`routerSetup'&nbsp;hook</span></td></tr>
-     <tr><td><div align="right"><a name="212"></a><a href="#212">212</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="213"></a><a href="#213">213</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">function</span><span class="default">&nbsp;</span><span class="default">routeAdd</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="214"></a><a href="#214">214</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="215"></a><a href="#215">215</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">!</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="default">-&gt;</span><span class="default">isInHook</span><span class="keyword">(</span><span class="default">&quot;routerSetup&quot;</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="216"></a><a href="#216">216</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">&quot;You&nbsp;can&nbsp;only&nbsp;add&nbsp;routes&nbsp;from&nbsp;`routerSetup'&nbsp;hook&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="217"></a><a href="#217">217</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">doRouteAdd</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="218"></a><a href="#218">218</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="219"></a><a href="#219">219</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="220"></a><a href="#220">220</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="221"></a><a href="#221">221</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Getter</span></td></tr>
-     <tr><td><div align="right"><a name="222"></a><a href="#222">222</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="223"></a><a href="#223">223</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">function</span><span class="default">&nbsp;</span><span class="default">__get</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="224"></a><a href="#224">224</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr><td><div align="right"><a name="225"></a><a href="#225">225</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">switch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="226"></a><a href="#226">226</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 227" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="227"></a><a href="#227">227</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;rootPath&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootPath</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 228" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="228"></a><a href="#228">228</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;rootUrl&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 229" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="229"></a><a href="#229">229</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;modulesPath&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootPath</span><span class="keyword">.</span><span class="default">&quot;content/modules/&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 230" data-content="&lt;ul&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="230"></a><a href="#230">230</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;modulesUrl&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="keyword">.</span><span class="default">&quot;content/modules/&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 231" data-content="&lt;ul&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="231"></a><a href="#231">231</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;themesPath&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootPath</span><span class="keyword">.</span><span class="default">&quot;content/theme/&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 232" data-content="&lt;ul&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="232"></a><a href="#232">232</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;themesUrl&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="keyword">.</span><span class="default">&quot;content/theme/&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="233"></a><a href="#233">233</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 234" data-content="&lt;ul&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="234"></a><a href="#234">234</a></div></td><td class="codeLine"><span class="default">&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="string">&quot;</span><span class="string">Cannot&nbsp;access&nbsp;attribute&nbsp;</span><span class="string">{</span><span class="string">$key</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="235"></a><a href="#235">235</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="236"></a><a href="#236">236</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="237"></a><a href="#237">237</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;array&nbsp;$overridden</span></td></tr>
+     <tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;contains&nbsp;url&nbsp;and&nbsp;paths&nbsp;to&nbsp;rewrite</span></td></tr>
+     <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="57"></a><a href="#57">57</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="default">$overridden</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;string&nbsp;$modulePath</span></td></tr>
+     <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Contains&nbsp;the&nbsp;module&nbsp;directory</span></td></tr>
+     <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;string&nbsp;$moduleUrl</span></td></tr>
+     <tr><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Contains&nbsp;the&nbsp;module&nbsp;Uri</span></td></tr>
+     <tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;string&nbsp;$themePath</span></td></tr>
+     <tr><td><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Contains&nbsp;the&nbsp;theme&nbsp;directory</span></td></tr>
+     <tr><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;string&nbsp;$themeUrl</span></td></tr>
+     <tr><td><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Contains&nbsp;the&nbsp;theme&nbsp;Uri</span></td></tr>
+     <tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Create&nbsp;the&nbsp;router,&nbsp;initialize&nbsp;url&nbsp;and&nbsp;path</span></td></tr>
+     <tr><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="82"></a><a href="#82">82</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">function</span><span class="default">&nbsp;</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 84" 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="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$pos</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">strrpos</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;SCRIPT_NAME&quot;</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;/&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 85" 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="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$relativePath</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">(</span><span class="default">$pos</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">FALSE</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">?</span><span class="default">&nbsp;</span><span class="default">&quot;&quot;</span><span class="default">&nbsp;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="default">substr</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;SCRIPT_NAME&quot;</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">0</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$pos</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 86" 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="86"></a><a href="#86">86</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootPath</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;DOCUMENT_ROOT&quot;</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">$relativePath</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">&quot;/&quot;</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 87" 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="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;REQUEST_SCHEME&quot;</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">&quot;://&quot;</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;HTTP_HOST&quot;</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">$relativePath</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&quot;/&quot;</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 88" 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="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">requestUrl</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">substr</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;REQUEST_URI&quot;</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">count</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">-</span><span class="default">1</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 89" 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="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 90" 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="90"></a><a href="#90">90</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">routes</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>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 91" 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="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">overridden</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 92" 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="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Called&nbsp;after&nbsp;database&nbsp;initialization</span></td></tr>
+     <tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Check&nbsp;the&nbsp;site&nbsp;url&nbsp;and&nbsp;redirect&nbsp;user&nbsp;if&nbsp;the&nbsp;HOST&nbsp;does&nbsp;not&nbsp;match</span></td></tr>
+     <tr><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;If&nbsp;the&nbsp;site&nbsp;url&nbsp;is&nbsp;not&nbsp;defined&nbsp;in&nbsp;database,&nbsp;do&nbsp;not&nbsp;redirect</span></td></tr>
+     <tr><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="99"></a><a href="#99">99</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">function</span><span class="default">&nbsp;</span><span class="default">init</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 101" 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="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$siteUrl</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Config</span><span class="default">::</span><span class="default">getConfig</span><span class="keyword">(</span><span class="default">null</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;siteUrl&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;@codeCoverageIgnoreStart</span></td></tr>
+     <tr><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;This&nbsp;code&nbsp;is&nbsp;tested&nbsp;under&nbsp;another&nbsp;process</span></td></tr>
+     <tr><td><div align="right"><a name="104"></a><a href="#104">104</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">$siteUrl</span><span class="default">&nbsp;</span><span class="default">!=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;HTTP_HOST&quot;</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="default">$siteUrl</span><span class="default">&nbsp;</span><span class="default">!==</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr><td><div align="right"><a name="106"></a><a href="#106">106</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">header</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">location:&nbsp;http://</span><span class="string">{</span><span class="string">$siteUrl</span><span class="keyword">}</span><span class="string">{</span><span class="string">$server</span><span class="keyword">[</span><span class="string">'REQUEST_URI'</span><span class="keyword">]</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="107"></a><a href="#107">107</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">die</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;@codeCoverageIgnoreEnd</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 110" 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="110"></a><a href="#110">110</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;\Controller\AController&nbsp;controller</span></td></tr>
+     <tr><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;/core/controller/AController.php</span></td></tr>
+     <tr><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Match&nbsp;request&nbsp;to&nbsp;a&nbsp;controller</span></td></tr>
+     <tr><td><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;return&nbsp;FALSE&nbsp;on&nbsp;failure&nbsp;(eg.&nbsp;404)</span></td></tr>
+     <tr><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="118"></a><a href="#118">118</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">function</span><span class="default">&nbsp;</span><span class="default">serveUrl</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr><td><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//TODO&nbsp;trigger&nbsp;hook&nbsp;GET,&nbsp;POST</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 121" 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="121"></a><a href="#121">121</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">prepareUrl</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 122" 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="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$requestParams</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">explode</span><span class="keyword">(</span><span class="default">&quot;/&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">requestUrl</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 123" 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="123"></a><a href="#123">123</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">$this</span><span class="default">-&gt;</span><span class="default">routes</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>
+     <tr><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 125" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="125"></a><a href="#125">125</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">$routeParams</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">explode</span><span class="keyword">(</span><span class="default">&quot;/&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">[</span><span class="default">0</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 126" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="126"></a><a href="#126">126</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">$p</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">routeMatch</span><span class="keyword">(</span><span class="default">$requestParams</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$routeParams</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 127" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="127"></a><a href="#127">127</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$p</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>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 128" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="128"></a><a href="#128">128</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">continue</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 129" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="129"></a><a href="#129">129</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">$controller</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">createController</span><span class="keyword">(</span><span class="default">$i</span><span class="keyword">[</span><span class="default">1</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$p</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="130"></a><a href="#130">130</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$controller</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 131" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&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="default">$controller</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 132" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 133" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="133"></a><a href="#133">133</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">false</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Create&nbsp;and&nbsp;return&nbsp;Controller&nbsp;for&nbsp;the&nbsp;given&nbsp;route</span></td></tr>
+     <tr><td><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;$className</span></td></tr>
+     <tr><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;array&nbsp;$routeParameters</span></td></tr>
+     <tr><td><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;\Tools\AController&nbsp;on&nbsp;succes,&nbsp;false&nbsp;otherwise</span></td></tr>
+     <tr><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="142"></a><a href="#142">142</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">function</span><span class="default">&nbsp;</span><span class="default">createController</span><span class="keyword">(</span><span class="default">$className</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 144" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="144"></a><a href="#144">144</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">!</span><span class="default">class_exists</span><span class="keyword">(</span><span class="default">$className</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 145" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="145"></a><a href="#145">145</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="default">false</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 146" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">routeParams</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 147" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="147"></a><a href="#147">147</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">null</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span></td></tr>
+     <tr><td><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 150" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="150"></a><a href="#150">150</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">$result</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">$className</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 151" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="151"></a><a href="#151">151</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Tools</span><span class="default">\</span><span class="default">AController</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 152" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&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="default">false</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="153"></a><a href="#153">153</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 154" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="154"></a><a href="#154">154</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">catch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">\</span><span class="default">Exception</span><span class="default">\</span><span class="default">Error404</span><span class="default">&nbsp;</span><span class="default">$e</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="155"></a><a href="#155">155</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 156" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="156"></a><a href="#156">156</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="default">false</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="157"></a><a href="#157">157</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 158" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="158"></a><a href="#158">158</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">$result</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="160"></a><a href="#160">160</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="161"></a><a href="#161">161</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="162"></a><a href="#162">162</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Check&nbsp;if&nbsp;the&nbsp;request&nbsp;match&nbsp;route</span></td></tr>
+     <tr><td><div align="right"><a name="163"></a><a href="#163">163</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;array&nbsp;$request&nbsp;User&nbsp;request</span></td></tr>
+     <tr><td><div align="right"><a name="164"></a><a href="#164">164</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;array&nbsp;$route&nbsp;Route&nbsp;to&nbsp;check</span></td></tr>
+     <tr><td><div align="right"><a name="165"></a><a href="#165">165</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;array&nbsp;on&nbsp;success,&nbsp;false&nbsp;on&nbsp;failure</span></td></tr>
+     <tr><td><div align="right"><a name="166"></a><a href="#166">166</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="167"></a><a href="#167">167</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">function</span><span class="default">&nbsp;</span><span class="default">routeMatch</span><span class="keyword">(</span><span class="default">$request</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$route</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="168"></a><a href="#168">168</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 169" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="169"></a><a href="#169">169</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">count</span><span class="keyword">(</span><span class="default">$request</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 170" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="170"></a><a href="#170">170</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$params</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>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 171" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="171"></a><a href="#171">171</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">$i</span><span class="default">&nbsp;</span><span class="default">!=</span><span class="default">&nbsp;</span><span class="default">count</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 172" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="172"></a><a href="#172">172</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="default">false</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 173" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="173"></a><a href="#173">173</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">while</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$i</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="174"></a><a href="#174">174</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 175" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="175"></a><a href="#175">175</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">$i</span><span class="default">--</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 176" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="176"></a><a href="#176">176</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">''</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">''</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 177" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="177"></a><a href="#177">177</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">continue</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 178" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="178"></a><a href="#178">178</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">''</span><span class="default">&nbsp;</span><span class="default">||</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">''</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 179" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="179"></a><a href="#179">179</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&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="default">false</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 180" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="180"></a><a href="#180">180</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">0</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">!=</span><span class="default">&nbsp;</span><span class="default">':'</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">!=</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 181" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="181"></a><a href="#181">181</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&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="default">false</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 182" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="182"></a><a href="#182">182</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">0</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">':'</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 183" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="183"></a><a href="#183">183</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$params</span><span class="keyword">[</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</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">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 184" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="184"></a><a href="#184">184</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">$params</span><span class="keyword">[</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="keyword">-</span><span class="default">1</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 185" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="185"></a><a href="#185">185</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 186" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="186"></a><a href="#186">186</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">array_reverse</span><span class="keyword">(</span><span class="default">$params</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="187"></a><a href="#187">187</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="188"></a><a href="#188">188</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="189"></a><a href="#189">189</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="190"></a><a href="#190">190</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Append&nbsp;local&nbsp;routes&nbsp;to&nbsp;router</span></td></tr>
+     <tr><td><div align="right"><a name="191"></a><a href="#191">191</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Will&nbsp;load&nbsp;CMS&nbsp;pages,&nbsp;categories&nbsp;page,&nbsp;products&nbsp;page,&nbsp;cart&nbsp;pages,&nbsp;etc.</span></td></tr>
+     <tr><td><div align="right"><a name="192"></a><a href="#192">192</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="193"></a><a href="#193">193</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">function</span><span class="default">&nbsp;</span><span class="default">prepareUrl</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="194"></a><a href="#194">194</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 195" 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="195"></a><a href="#195">195</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">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Cms</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 196" 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="196"></a><a href="#196">196</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$pages</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="default">null</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;order&quot;</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 197" 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="197"></a><a href="#197">197</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">$pages</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>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 198" 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="198"></a><a href="#198">198</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">$this</span><span class="default">-&gt;</span><span class="default">doRouteAdd</span><span class="keyword">(</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">shurl</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">controller</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 199" 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="199"></a><a href="#199">199</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="200"></a><a href="#200">200</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="201"></a><a href="#201">201</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="202"></a><a href="#202">202</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Add&nbsp;a&nbsp;route&nbsp;to&nbsp;the&nbsp;internal&nbsp;route&nbsp;list</span></td></tr>
+     <tr><td><div align="right"><a name="203"></a><a href="#203">203</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Internal&nbsp;procedure</span></td></tr>
+     <tr><td><div align="right"><a name="204"></a><a href="#204">204</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="205"></a><a href="#205">205</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">function</span><span class="default">&nbsp;</span><span class="default">doRouteAdd</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="206"></a><a href="#206">206</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 207" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="207"></a><a href="#207">207</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">routes</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="keyword">array</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 208" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="208"></a><a href="#208">208</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="209"></a><a href="#209">209</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="210"></a><a href="#210">210</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="211"></a><a href="#211">211</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$route&nbsp;Uri&nbsp;to&nbsp;match&nbsp;the&nbsp;controller</span></td></tr>
+     <tr><td><div align="right"><a name="212"></a><a href="#212">212</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Uri&nbsp;can&nbsp;be&nbsp;formatted&nbsp;as&nbsp;'/:param/static'.</span></td></tr>
+     <tr><td><div align="right"><a name="213"></a><a href="#213">213</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;expl.&nbsp;'/product/:id/'</span></td></tr>
+     <tr><td><div align="right"><a name="214"></a><a href="#214">214</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$controller&nbsp;Controller&nbsp;class&nbsp;name.</span></td></tr>
+     <tr><td><div align="right"><a name="215"></a><a href="#215">215</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;new&nbsp;$controller()&nbsp;MUST&nbsp;return&nbsp;a&nbsp;\Tool\AController&nbsp;instance</span></td></tr>
+     <tr><td><div align="right"><a name="216"></a><a href="#216">216</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
+     <tr><td><div align="right"><a name="217"></a><a href="#217">217</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Add&nbsp;a&nbsp;route&nbsp;and&nbsp;a&nbsp;Controller&nbsp;to&nbsp;the&nbsp;list</span></td></tr>
+     <tr><td><div align="right"><a name="218"></a><a href="#218">218</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Can&nbsp;only&nbsp;be&nbsp;called&nbsp;from&nbsp;`routerSetup'&nbsp;hook</span></td></tr>
+     <tr><td><div align="right"><a name="219"></a><a href="#219">219</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="220"></a><a href="#220">220</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">function</span><span class="default">&nbsp;</span><span class="default">routeAdd</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="221"></a><a href="#221">221</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="222"></a><a href="#222">222</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">!</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="default">-&gt;</span><span class="default">isInHook</span><span class="keyword">(</span><span class="default">&quot;routerSetup&quot;</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="223"></a><a href="#223">223</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">&quot;You&nbsp;can&nbsp;only&nbsp;add&nbsp;routes&nbsp;from&nbsp;`routerSetup'&nbsp;hook&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="224"></a><a href="#224">224</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">doRouteAdd</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="225"></a><a href="#225">225</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="226"></a><a href="#226">226</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="227"></a><a href="#227">227</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="228"></a><a href="#228">228</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Override&nbsp;url</span></td></tr>
+     <tr><td><div align="right"><a name="229"></a><a href="#229">229</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;This&nbsp;SHOULD&nbsp;not&nbsp;be&nbsp;called&nbsp;for&nbsp;security&nbsp;purpose</span></td></tr>
+     <tr><td><div align="right"><a name="230"></a><a href="#230">230</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$type&nbsp;the&nbsp;url&nbsp;type&nbsp;to&nbsp;override</span></td></tr>
+     <tr><td><div align="right"><a name="231"></a><a href="#231">231</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$value&nbsp;the&nbsp;new&nbsp;value</span></td></tr>
+     <tr><td><div align="right"><a name="232"></a><a href="#232">232</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Will&nbsp;fail&nbsp;if&nbsp;called&nbsp;from&nbsp;a&nbsp;controller</span></td></tr>
+     <tr><td><div align="right"><a name="233"></a><a href="#233">233</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;boolean&nbsp;false&nbsp;on&nbsp;failure</span></td></tr>
+     <tr><td><div align="right"><a name="234"></a><a href="#234">234</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="235"></a><a href="#235">235</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">function</span><span class="default">&nbsp;</span><span class="default">overrideUrl</span><span class="keyword">(</span><span class="default">$type</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="236"></a><a href="#236">236</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 237" data-content="&lt;ul&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::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="237"></a><a href="#237">237</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">!</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">-&gt;</span><span class="default">isTestingEnvironment</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 238" data-content="&lt;ul&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::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="238"></a><a href="#238">238</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="default">false</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 239" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="239"></a><a href="#239">239</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">overridden</span><span class="keyword">[</span><span class="default">$type</span><span class="keyword">]</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>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 240" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstalled&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="240"></a><a href="#240">240</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>
+     <tr class="warning"><td><div align="right"><a name="241"></a><a href="#241">241</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="242"></a><a href="#242">242</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="243"></a><a href="#243">243</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="244"></a><a href="#244">244</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Getter</span></td></tr>
+     <tr><td><div align="right"><a name="245"></a><a href="#245">245</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="246"></a><a href="#246">246</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">function</span><span class="default">&nbsp;</span><span class="default">__get</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="247"></a><a href="#247">247</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 248" 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::testInstall&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="248"></a><a href="#248">248</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">$this</span><span class="default">-&gt;</span><span class="default">overridden</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="default">in_array</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;modulesPath&quot;</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 249" 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::testInstall&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="249"></a><a href="#249">249</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="default">$this</span><span class="default">-&gt;</span><span class="default">overridden</span><span class="keyword">[</span><span class="default">$key</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="250"></a><a href="#250">250</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">switch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="251"></a><a href="#251">251</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 252" 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="252"></a><a href="#252">252</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;rootPath&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootPath</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 253" 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="253"></a><a href="#253">253</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;rootUrl&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 254" 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="254"></a><a href="#254">254</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;modulesPath&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootPath</span><span class="keyword">.</span><span class="default">&quot;content/modules/&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 255" data-content="&lt;ul&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="255"></a><a href="#255">255</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;modulesUrl&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="keyword">.</span><span class="default">&quot;content/modules/&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 256" data-content="&lt;ul&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="256"></a><a href="#256">256</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;themesPath&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootPath</span><span class="keyword">.</span><span class="default">&quot;content/theme/&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 257" data-content="&lt;ul&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="257"></a><a href="#257">257</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;themesUrl&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="keyword">.</span><span class="default">&quot;content/theme/&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="258"></a><a href="#258">258</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 259" data-content="&lt;ul&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="259"></a><a href="#259">259</a></div></td><td class="codeLine"><span class="default">&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="string">&quot;</span><span class="string">Cannot&nbsp;access&nbsp;attribute&nbsp;</span><span class="string">{</span><span class="string">$key</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="260"></a><a href="#260">260</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="261"></a><a href="#261">261</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="262"></a><a href="#262">262</a></div></td><td class="codeLine"></td></tr>
 
     </tbody>
    </table>
@@ -542,7 +588,7 @@
      <span class="warning"><strong>Dead Code</strong></span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 18 - 29
doc/coverage/tools/dashboard.html


+ 43 - 43
doc/coverage/tools/index.html

@@ -44,21 +44,21 @@
      <tr>
       <td class="warning">Total</td>
       <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="58.15" aria-valuemin="0" aria-valuemax="100" style="width: 58.15%">
-           <span class="sr-only">58.15% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="77.93" aria-valuemin="0" aria-valuemax="100" style="width: 77.93%">
+           <span class="sr-only">77.93% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">58.15%</div></td>
-      <td class="warning small"><div align="right">107&nbsp;/&nbsp;184</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="46.88" aria-valuemin="0" aria-valuemax="100" style="width: 46.88%">
-           <span class="sr-only">46.88% covered (danger)</span>
+      <td class="warning small"><div align="right">77.93%</div></td>
+      <td class="warning small"><div align="right">166&nbsp;/&nbsp;213</div></td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="68.42" aria-valuemin="0" aria-valuemax="100" style="width: 68.42%">
+           <span class="sr-only">68.42% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">46.88%</div></td>
-      <td class="danger small"><div align="right">15&nbsp;/&nbsp;32</div></td>
+      <td class="warning small"><div align="right">68.42%</div></td>
+      <td class="warning small"><div align="right">26&nbsp;/&nbsp;38</div></td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="28.57" aria-valuemin="0" aria-valuemax="100" style="width: 28.57%">
            <span class="sr-only">28.57% covered (danger)</span>
@@ -98,23 +98,23 @@
      </tr>
 
      <tr>
-      <td class="danger"><span class="glyphicon glyphicon-file"></span> <a href="AModule.php.html">AModule.php</a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="warning"><span class="glyphicon glyphicon-file"></span> <a href="AModule.php.html">AModule.php</a></td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="71.43" aria-valuemin="0" aria-valuemax="100" style="width: 71.43%">
+           <span class="sr-only">71.43% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;12</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="warning small"><div align="right">71.43%</div></td>
+      <td class="warning small"><div align="right">10&nbsp;/&nbsp;14</div></td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="57.14" aria-valuemin="0" aria-valuemax="100" style="width: 57.14%">
+           <span class="sr-only">57.14% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;5</div></td>
+      <td class="warning small"><div align="right">57.14%</div></td>
+      <td class="warning small"><div align="right">4&nbsp;/&nbsp;7</div></td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
            <span class="sr-only">0.00% covered (danger)</span>
@@ -134,7 +134,7 @@
        </div>
 </td>
       <td class="success small"><div align="right">100.00%</div></td>
-      <td class="success small"><div align="right">26&nbsp;/&nbsp;26</div></td>
+      <td class="success small"><div align="right">27&nbsp;/&nbsp;27</div></td>
       <td class="success big">       <div class="progress">
          <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
            <span class="sr-only">100.00% covered (success)</span>
@@ -142,7 +142,7 @@
        </div>
 </td>
       <td class="success small"><div align="right">100.00%</div></td>
-      <td class="success small"><div align="right">4&nbsp;/&nbsp;4</div></td>
+      <td class="success small"><div align="right">5&nbsp;/&nbsp;5</div></td>
       <td class="success big">       <div class="progress">
          <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
            <span class="sr-only">100.00% covered (success)</span>
@@ -210,23 +210,23 @@
      </tr>
 
      <tr>
-      <td class="danger"><span class="glyphicon glyphicon-file"></span> <a href="ModuleManager.php.html">ModuleManager.php</a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="19.51" aria-valuemin="0" aria-valuemax="100" style="width: 19.51%">
-           <span class="sr-only">19.51% covered (danger)</span>
+      <td class="warning"><span class="glyphicon glyphicon-file"></span> <a href="ModuleManager.php.html">ModuleManager.php</a></td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="81.67" aria-valuemin="0" aria-valuemax="100" style="width: 81.67%">
+           <span class="sr-only">81.67% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">19.51%</div></td>
-      <td class="danger small"><div align="right">8&nbsp;/&nbsp;41</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="warning small"><div align="right">81.67%</div></td>
+      <td class="warning small"><div align="right">49&nbsp;/&nbsp;60</div></td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="71.43" aria-valuemin="0" aria-valuemax="100" style="width: 71.43%">
+           <span class="sr-only">71.43% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;5</div></td>
+      <td class="warning small"><div align="right">71.43%</div></td>
+      <td class="warning small"><div align="right">5&nbsp;/&nbsp;7</div></td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
            <span class="sr-only">0.00% covered (danger)</span>
@@ -240,21 +240,21 @@
      <tr>
       <td class="success"><span class="glyphicon glyphicon-file"></span> <a href="Router.php.html">Router.php</a></td>
       <td class="success big">       <div class="progress">
-         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="93.94" aria-valuemin="0" aria-valuemax="100" style="width: 93.94%">
-           <span class="sr-only">93.94% covered (success)</span>
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="94.52" aria-valuemin="0" aria-valuemax="100" style="width: 94.52%">
+           <span class="sr-only">94.52% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="success small"><div align="right">93.94%</div></td>
-      <td class="success small"><div align="right">62&nbsp;/&nbsp;66</div></td>
-      <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="88.89" aria-valuemin="0" aria-valuemax="100" style="width: 88.89%">
-           <span class="sr-only">88.89% covered (warning)</span>
+      <td class="success small"><div align="right">94.52%</div></td>
+      <td class="success small"><div align="right">69&nbsp;/&nbsp;73</div></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="90.00" aria-valuemin="0" aria-valuemax="100" style="width: 90.00%">
+           <span class="sr-only">90.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">88.89%</div></td>
-      <td class="warning small"><div align="right">8&nbsp;/&nbsp;9</div></td>
+      <td class="success small"><div align="right">90.00%</div></td>
+      <td class="success small"><div align="right">9&nbsp;/&nbsp;10</div></td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
            <span class="sr-only">0.00% covered (danger)</span>
@@ -277,7 +277,7 @@
      <span class="success"><strong>High</strong>: 90% to 100%</span>
     </p>
     <p>
-     <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 Wed Aug 5 22:34:46 UTC 2015.</small>
+     <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>
     </p>
    </footer>
   </div>

+ 1 - 1
doc/html/_2main_8php.html

@@ -123,7 +123,7 @@ Variables</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_2main_8php_source.html

@@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_a_controller_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_a_controller_8php_source.html

@@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_a_module_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 21 - 11
doc/html/_a_module_8php_source.html

@@ -125,19 +125,29 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        $this-&gt;context-&gt;hooks-&gt;register($this, $hookname);</div>
 <div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    }</div>
 <div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_tools_1_1_a_module.html#a4537dad3b44254124991341cc91b28fb">   86</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_a_module.html#a4537dad3b44254124991341cc91b28fb">__get</a>($key)</div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_tools_1_1_a_module.html#a3d0963e68bb313b163a73f2803c64600">   86</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_a_module.html#a3d0963e68bb313b163a73f2803c64600">getName</a>()</div>
 <div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    {</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <span class="keywordflow">switch</span> ($key)</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        {</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;context&quot;</span>: <span class="keywordflow">return</span> $this-&gt;context; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;entity&quot;</span>: <span class="keywordflow">return</span> $this-&gt;entity; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        }</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    }</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;}</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <span class="keywordflow">return</span> $this-&gt;entity-&gt;name;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    }</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="class_tools_1_1_a_module.html#a2e7bb35c71bf1824456ceb944cb7a845">   94</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_a_module.html#a2e7bb35c71bf1824456ceb944cb7a845">getDescription</a>()</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    { <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>; }</div>
 <div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div>
-<div class="ttc" id="class_tools_1_1_a_module_html_a4537dad3b44254124991341cc91b28fb"><div class="ttname"><a href="class_tools_1_1_a_module.html#a4537dad3b44254124991341cc91b28fb">Tools\AModule\__get</a></div><div class="ttdeci">__get($key)</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00086">AModule.php:86</a></div></div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_tools_1_1_a_module.html#a4537dad3b44254124991341cc91b28fb">  100</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_a_module.html#a4537dad3b44254124991341cc91b28fb">__get</a>($key)</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    {</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <span class="keywordflow">switch</span> ($key)</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        {</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;context&quot;</span>: <span class="keywordflow">return</span> $this-&gt;context; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;entity&quot;</span>: <span class="keywordflow">return</span> $this-&gt;entity; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        }</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    }</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;}</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div>
+<div class="ttc" id="class_tools_1_1_a_module_html_a4537dad3b44254124991341cc91b28fb"><div class="ttname"><a href="class_tools_1_1_a_module.html#a4537dad3b44254124991341cc91b28fb">Tools\AModule\__get</a></div><div class="ttdeci">__get($key)</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00100">AModule.php:100</a></div></div>
 <div class="ttc" id="class_tools_1_1_a_module_html_a7c294642225a6c91f5d7932dde75c2ae"><div class="ttname"><a href="class_tools_1_1_a_module.html#a7c294642225a6c91f5d7932dde75c2ae">Tools\AModule\$context</a></div><div class="ttdeci">$context</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00017">AModule.php:17</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_module_html_a2e7bb35c71bf1824456ceb944cb7a845"><div class="ttname"><a href="class_tools_1_1_a_module.html#a2e7bb35c71bf1824456ceb944cb7a845">Tools\AModule\getDescription</a></div><div class="ttdeci">getDescription()</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00094">AModule.php:94</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_module_html_a3d0963e68bb313b163a73f2803c64600"><div class="ttname"><a href="class_tools_1_1_a_module.html#a3d0963e68bb313b163a73f2803c64600">Tools\AModule\getName</a></div><div class="ttdeci">getName()</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00086">AModule.php:86</a></div></div>
 <div class="ttc" id="class_tools_1_1_a_module_html_a9db6a246faa6b948911078c4be4445c8"><div class="ttname"><a href="class_tools_1_1_a_module.html#a9db6a246faa6b948911078c4be4445c8">Tools\AModule\uninstall</a></div><div class="ttdeci">uninstall()</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00033">AModule.php:33</a></div></div>
 <div class="ttc" id="class_tools_1_1_a_module_html"><div class="ttname"><a href="class_tools_1_1_a_module.html">Tools\AModule</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00009">AModule.php:9</a></div></div>
 <div class="ttc" id="class_tools_1_1_a_module_html_a313783d5477383dd99a2f3785705aaf4"><div class="ttname"><a href="class_tools_1_1_a_module.html#a313783d5477383dd99a2f3785705aaf4">Tools\AModule\setContext</a></div><div class="ttdeci">setContext($context)</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00056">AModule.php:56</a></div></div>
@@ -148,7 +158,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_address_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_address_8php_source.html

@@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_admin_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 2 - 2
doc/html/_admin_8php_source.html

@@ -136,7 +136,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    }</div>
 <div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;}</div>
 <div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div>
-<div class="ttc" id="class_tools_1_1_context_html_aa3fe42ba4c6ff4bf9fe17a836d6b593f"><div class="ttname"><a href="class_tools_1_1_context.html#aa3fe42ba4c6ff4bf9fe17a836d6b593f">Tools\Context\getContext</a></div><div class="ttdeci">static getContext()</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00146">Context.php:146</a></div></div>
+<div class="ttc" id="class_tools_1_1_context_html_aa3fe42ba4c6ff4bf9fe17a836d6b593f"><div class="ttname"><a href="class_tools_1_1_context.html#aa3fe42ba4c6ff4bf9fe17a836d6b593f">Tools\Context\getContext</a></div><div class="ttdeci">static getContext()</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00155">Context.php:155</a></div></div>
 <div class="ttc" id="class_entity_1_1_admin_html_a79b36d71c6f1d4f9e6c4c3e34c081456"><div class="ttname"><a href="class_entity_1_1_admin.html#a79b36d71c6f1d4f9e6c4c3e34c081456">Entity\Admin\__set</a></div><div class="ttdeci">__set($key, $value)</div><div class="ttdef"><b>Definition:</b> <a href="_admin_8php_source.html#l00054">Admin.php:54</a></div></div>
 <div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
 <div class="ttc" id="class_entity_1_1_admin_html_aa966adc12c56a4cc70da92207fa50929"><div class="ttname"><a href="class_entity_1_1_admin.html#aa966adc12c56a4cc70da92207fa50929">Entity\Admin\install</a></div><div class="ttdeci">install()</div><div class="ttdef"><b>Definition:</b> <a href="_admin_8php_source.html#l00021">Admin.php:21</a></div></div>
@@ -148,7 +148,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_cart_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_cart_8php_source.html

@@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_cart_product_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_cart_product_8php_source.html

@@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_category_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_category_8php_source.html

@@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_category_controller_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_category_controller_8php_source.html

@@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_cms_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_cms_8php_source.html

@@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_config_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 35 - 14
doc/html/_config_8php_source.html

@@ -111,29 +111,50 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
 <div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    }</div>
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div>
-<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_entity_1_1_config.html#af66f143ec797389e3ade6952ef7808e2">   23</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_config.html#af66f143ec797389e3ade6952ef7808e2">getConfig</a>($lang =null, $key =null, $defaultValue =null)</div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_entity_1_1_config.html#a1b8888d7fcb341f109465dc00408fcc3">   23</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_config.html#a1b8888d7fcb341f109465dc00408fcc3">setConfig</a>($lang, $key, $value)</div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    {</div>
 <div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        $fetcher = <span class="keyword">new</span> <span class="keyword">self</span>();</div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        <span class="keywordflow">if</span> (isset(self::$config[$lang]))</div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;            <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        $values = $fetcher-&gt;selects(array(<span class="stringliteral">&quot;lang&quot;</span> =&gt; $lang));</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        <span class="keywordflow">foreach</span> ($values as $i)</div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;            self::$config[$lang][$i-&gt;key] = $i-&gt;value;</div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        <span class="keywordflow">if</span> ($key)</div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;            <span class="keywordflow">return</span> (isset(self::$config[$lang][$key]) ? self::$config[$lang][$key] : $defaultValue);</div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        <span class="keywordflow">return</span> $defaultValue;</div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    }</div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;}</div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        $data = $fetcher-&gt;selects(array(<span class="stringliteral">&quot;lang&quot;</span> =&gt; $lang, <span class="stringliteral">&quot;key&quot;</span> =&gt; $key));</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        <span class="keywordflow">if</span> (empty($data))</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        {</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;            $data = <span class="keyword">new</span> <span class="keyword">self</span>();</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;            $data-&gt;lang = $lang;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;            $data-&gt;key = $key;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;            $data-&gt;value = $value;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;            $data-&gt;save();</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        }</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        {</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;            $data = $data[0];</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;            $data-&gt;value = $value;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;            $data-&gt;save();</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        }</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    }</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="class_entity_1_1_config.html#af66f143ec797389e3ade6952ef7808e2">   43</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_config.html#af66f143ec797389e3ade6952ef7808e2">getConfig</a>($lang =null, $key =null, $defaultValue =null)</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    {</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        $fetcher = <span class="keyword">new</span> <span class="keyword">self</span>();</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        <span class="keywordflow">if</span> (isset(self::$config[$lang]))</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;            <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        $values = $fetcher-&gt;selects(array(<span class="stringliteral">&quot;lang&quot;</span> =&gt; $lang));</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        <span class="keywordflow">foreach</span> ($values as $i)</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;            self::$config[$lang][$i-&gt;key] = $i-&gt;value;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        <span class="keywordflow">if</span> ($key)</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;            <span class="keywordflow">return</span> (isset(self::$config[$lang][$key]) ? self::$config[$lang][$key] : $defaultValue);</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        <span class="keywordflow">return</span> $defaultValue;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    }</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;}</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div>
 <div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
-<div class="ttc" id="class_entity_1_1_config_html_af66f143ec797389e3ade6952ef7808e2"><div class="ttname"><a href="class_entity_1_1_config.html#af66f143ec797389e3ade6952ef7808e2">Entity\Config\getConfig</a></div><div class="ttdeci">static getConfig($lang=null, $key=null, $defaultValue=null)</div><div class="ttdef"><b>Definition:</b> <a href="_config_8php_source.html#l00023">Config.php:23</a></div></div>
+<div class="ttc" id="class_entity_1_1_config_html_af66f143ec797389e3ade6952ef7808e2"><div class="ttname"><a href="class_entity_1_1_config.html#af66f143ec797389e3ade6952ef7808e2">Entity\Config\getConfig</a></div><div class="ttdeci">static getConfig($lang=null, $key=null, $defaultValue=null)</div><div class="ttdef"><b>Definition:</b> <a href="_config_8php_source.html#l00043">Config.php:43</a></div></div>
 <div class="ttc" id="class_entity_1_1_config_html_aa966adc12c56a4cc70da92207fa50929"><div class="ttname"><a href="class_entity_1_1_config.html#aa966adc12c56a4cc70da92207fa50929">Entity\Config\install</a></div><div class="ttdeci">install()</div><div class="ttdef"><b>Definition:</b> <a href="_config_8php_source.html#l00009">Config.php:9</a></div></div>
 <div class="ttc" id="class_entity_1_1_model_base_html"><div class="ttname"><a href="class_entity_1_1_model_base.html">Entity\ModelBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00005">ModelBase.php:5</a></div></div>
 <div class="ttc" id="class_entity_1_1_config_html"><div class="ttname"><a href="class_entity_1_1_config.html">Entity\Config</a></div><div class="ttdef"><b>Definition:</b> <a href="_config_8php_source.html#l00005">Config.php:5</a></div></div>
+<div class="ttc" id="class_entity_1_1_config_html_a1b8888d7fcb341f109465dc00408fcc3"><div class="ttname"><a href="class_entity_1_1_config.html#a1b8888d7fcb341f109465dc00408fcc3">Entity\Config\setConfig</a></div><div class="ttdeci">static setConfig($lang, $key, $value)</div><div class="ttdef"><b>Definition:</b> <a href="_config_8php_source.html#l00023">Config.php:23</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_context_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 36 - 29
doc/html/_context_8php_source.html

@@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div>
 <div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_tools_1_1_context.html#a73dd99ff94413eda94afa6627c21b868">   77</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_context.html#a73dd99ff94413eda94afa6627c21b868">$server</a>;</div>
 <div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_tools_1_1_context.html#adc5443cd941634fd2a52de5be4d4985e">   90</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_context.html#adc5443cd941634fd2a52de5be4d4985e">__construct</a>($server = null, $run = <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_tools_1_1_context.html#a4a9ed3cc0b3551a50aa35c18eb9bb352">   90</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_context.html#a4a9ed3cc0b3551a50aa35c18eb9bb352">__construct</a>($server = null)</div>
 <div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    {</div>
 <div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        self::$instance = $this;</div>
 <div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="keywordflow">if</span> ($server == null)</div>
@@ -126,25 +126,25 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_tools_1_1_context.html#aa9e0b443b9575f62bf9f8e85b1742c96">  100</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_context.html#aa9e0b443b9575f62bf9f8e85b1742c96">serve</a>()</div>
 <div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    {</div>
 <div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        $this-&gt;router = <span class="keyword">new</span> <a class="code" href="class_tools_1_1_router.html">Router</a>($this-&gt;server, $this);</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="keywordflow">if</span> (!\<a class="code" href="namespace_entity.html">Entity</a>\ModelBase::init())</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        {</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            @require_once(getcwd().<span class="stringliteral">&#39;/core/setup/index.php&#39;</span>);</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;            die;</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        }</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        $this-&gt;router-&gt;init($this-&gt;server);</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        $this-&gt;moduleManager = <span class="keyword">new</span> <a class="code" href="class_tools_1_1_module_manager.html">ModuleManager</a>($this);</div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        $this-&gt;hookManager-&gt;trigger(<span class="stringliteral">&quot;routerSetup&quot;</span>);</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <span class="keywordflow">try</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        {</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;            $this-&gt;controller = $this-&gt;router-&gt;serveUrl();</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;            <span class="keywordflow">if</span> (!$this-&gt;controller)</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                <span class="keywordflow">throw</span> new \Exception\Error404();</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;            <span class="keywordflow">if</span> ($run)</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                $this-&gt;controller-&gt;start();</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="comment">// @codeCoverageIgnoreStart</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        <span class="keywordflow">if</span> (!\<a class="code" href="namespace_entity.html">Entity</a>\ModelBase::init())</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        {</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;            @require_once(getcwd().<span class="stringliteral">&#39;/core/setup/index.php&#39;</span>);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;            die;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        }</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <span class="comment">// @codeCoverageIgnoreEnd</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        $this-&gt;router-&gt;init($this-&gt;server);</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        $this-&gt;moduleManager = <span class="keyword">new</span> <a class="code" href="class_tools_1_1_module_manager.html">ModuleManager</a>($this);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        $this-&gt;hookManager-&gt;trigger(<span class="stringliteral">&quot;routerSetup&quot;</span>);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <span class="keywordflow">try</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        {</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;            $this-&gt;controller = $this-&gt;router-&gt;serveUrl();</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;            <span class="keywordflow">if</span> (!$this-&gt;controller)</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                <span class="keywordflow">throw</span> new \Exception\Error404();</div>
 <div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        }</div>
 <div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        <span class="keywordflow">catch</span> (\<a class="code" href="namespace_exception.html">Exception</a>\Error404 $e)</div>
 <div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        {</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;            echo <span class="stringliteral">&quot;404&quot;</span>;</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;            $this-&gt;controller = new \Controller\Error404($this, array());</div>
 <div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        }</div>
 <div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    }</div>
 <div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div>
@@ -158,30 +158,37 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;moduleManager&quot;</span>: <span class="keywordflow">return</span> $this-&gt;moduleManager; <span class="keywordflow">break</span>;</div>
 <div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;hookManager&quot;</span>: <span class="keywordflow">return</span> $this-&gt;hookManager; <span class="keywordflow">break</span>;</div>
 <div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;ip&quot;</span>: <span class="keywordflow">return</span> $this-&gt;ip; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        }</div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    }</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_tools_1_1_context.html#aa3fe42ba4c6ff4bf9fe17a836d6b593f">  146</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_context.html#aa3fe42ba4c6ff4bf9fe17a836d6b593f">getContext</a>()</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;controller&quot;</span>: <span class="keywordflow">return</span> $this-&gt;controller; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        }</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    }</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_tools_1_1_context.html#a7e7fa404cfa0e6aff17bf034f719fa12">  146</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_context.html#a7e7fa404cfa0e6aff17bf034f719fa12">isTestingEnvironment</a>()</div>
 <div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    {</div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <span class="keywordflow">return</span> self::$instance;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <span class="keywordflow">return</span> isset($this-&gt;server[<span class="stringliteral">&quot;phpUnit&quot;</span>]) &amp;&amp; $this-&gt;server[<span class="stringliteral">&quot;phpUnit&quot;</span>] == <span class="keyword">true</span>;</div>
 <div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    }</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;}</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="class_tools_1_1_context.html#aa3fe42ba4c6ff4bf9fe17a836d6b593f">  155</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_context.html#aa3fe42ba4c6ff4bf9fe17a836d6b593f">getContext</a>()</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    {</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        <span class="keywordflow">return</span> self::$instance;</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    }</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;}</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div>
 <div class="ttc" id="class_tools_1_1_context_html_a8b7726f763e4795501ee2a0327960dc0"><div class="ttname"><a href="class_tools_1_1_context.html#a8b7726f763e4795501ee2a0327960dc0">Tools\Context\$user</a></div><div class="ttdeci">$user</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00057">Context.php:57</a></div></div>
-<div class="ttc" id="class_tools_1_1_context_html_aa3fe42ba4c6ff4bf9fe17a836d6b593f"><div class="ttname"><a href="class_tools_1_1_context.html#aa3fe42ba4c6ff4bf9fe17a836d6b593f">Tools\Context\getContext</a></div><div class="ttdeci">static getContext()</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00146">Context.php:146</a></div></div>
+<div class="ttc" id="class_tools_1_1_context_html_aa3fe42ba4c6ff4bf9fe17a836d6b593f"><div class="ttname"><a href="class_tools_1_1_context.html#aa3fe42ba4c6ff4bf9fe17a836d6b593f">Tools\Context\getContext</a></div><div class="ttdeci">static getContext()</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00155">Context.php:155</a></div></div>
 <div class="ttc" id="class_tools_1_1_context_html_a02e30d1742d35e696b2c57d76fbaa477"><div class="ttname"><a href="class_tools_1_1_context.html#a02e30d1742d35e696b2c57d76fbaa477">Tools\Context\$cart</a></div><div class="ttdeci">$cart</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00049">Context.php:49</a></div></div>
-<div class="ttc" id="class_tools_1_1_context_html_adc5443cd941634fd2a52de5be4d4985e"><div class="ttname"><a href="class_tools_1_1_context.html#adc5443cd941634fd2a52de5be4d4985e">Tools\Context\__construct</a></div><div class="ttdeci">__construct($server=null, $run=true)</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00090">Context.php:90</a></div></div>
 <div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
 <div class="ttc" id="class_tools_1_1_module_manager_html"><div class="ttname"><a href="class_tools_1_1_module_manager.html">Tools\ModuleManager</a></div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00009">ModuleManager.php:9</a></div></div>
 <div class="ttc" id="class_tools_1_1_context_html_aa9e0b443b9575f62bf9f8e85b1742c96"><div class="ttname"><a href="class_tools_1_1_context.html#aa9e0b443b9575f62bf9f8e85b1742c96">Tools\Context\serve</a></div><div class="ttdeci">serve()</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00100">Context.php:100</a></div></div>
 <div class="ttc" id="class_tools_1_1_context_html_aafbd9a1b51b1f8a2f339c26667b737f7"><div class="ttname"><a href="class_tools_1_1_context.html#aafbd9a1b51b1f8a2f339c26667b737f7">Tools\Context\$hookManager</a></div><div class="ttdeci">$hookManager</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00018">Context.php:18</a></div></div>
 <div class="ttc" id="class_tools_1_1_context_html_a98e337617fa9647176db165d050037a6"><div class="ttname"><a href="class_tools_1_1_context.html#a98e337617fa9647176db165d050037a6">Tools\Context\$moduleManager</a></div><div class="ttdeci">$moduleManager</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00031">Context.php:31</a></div></div>
-<div class="ttc" id="namespace_exception_html"><div class="ttname"><a href="namespace_exception.html">Exception</a></div><div class="ttdef"><b>Definition:</b> <a href="_error404_8php_source.html#l00003">Error404.php:3</a></div></div>
+<div class="ttc" id="namespace_exception_html"><div class="ttname"><a href="namespace_exception.html">Exception</a></div><div class="ttdef"><b>Definition:</b> <a href="exceptions_2_error404_8php_source.html#l00003">Error404.php:3</a></div></div>
 <div class="ttc" id="class_tools_1_1_router_html"><div class="ttname"><a href="class_tools_1_1_router.html">Tools\Router</a></div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00009">Router.php:9</a></div></div>
+<div class="ttc" id="class_tools_1_1_context_html_a4a9ed3cc0b3551a50aa35c18eb9bb352"><div class="ttname"><a href="class_tools_1_1_context.html#a4a9ed3cc0b3551a50aa35c18eb9bb352">Tools\Context\__construct</a></div><div class="ttdeci">__construct($server=null)</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00090">Context.php:90</a></div></div>
 <div class="ttc" id="class_tools_1_1_context_html_aa37a3471877826e6468824f3f4bbe045"><div class="ttname"><a href="class_tools_1_1_context.html#aa37a3471877826e6468824f3f4bbe045">Tools\Context\$router</a></div><div class="ttdeci">$router</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00040">Context.php:40</a></div></div>
 <div class="ttc" id="class_tools_1_1_context_html_ad9d7ce33ebb142b70e58b68052ca0ea8"><div class="ttname"><a href="class_tools_1_1_context.html#ad9d7ce33ebb142b70e58b68052ca0ea8">Tools\Context\$instance</a></div><div class="ttdeci">static $instance</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00023">Context.php:23</a></div></div>
 <div class="ttc" id="class_tools_1_1_context_html"><div class="ttname"><a href="class_tools_1_1_context.html">Tools\Context</a></div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00010">Context.php:10</a></div></div>
+<div class="ttc" id="class_tools_1_1_context_html_a7e7fa404cfa0e6aff17bf034f719fa12"><div class="ttname"><a href="class_tools_1_1_context.html#a7e7fa404cfa0e6aff17bf034f719fa12">Tools\Context\isTestingEnvironment</a></div><div class="ttdeci">isTestingEnvironment()</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00146">Context.php:146</a></div></div>
 <div class="ttc" id="class_tools_1_1_context_html_a73dd99ff94413eda94afa6627c21b868"><div class="ttname"><a href="class_tools_1_1_context.html#a73dd99ff94413eda94afa6627c21b868">Tools\Context\$server</a></div><div class="ttdeci">$server</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00077">Context.php:77</a></div></div>
 <div class="ttc" id="class_tools_1_1_context_html_a4537dad3b44254124991341cc91b28fb"><div class="ttname"><a href="class_tools_1_1_context.html#a4537dad3b44254124991341cc91b28fb">Tools\Context\__get</a></div><div class="ttdeci">__get($key)</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00128">Context.php:128</a></div></div>
 <div class="ttc" id="class_tools_1_1_context_html_a232854b8e97359df1687d6c24460eacf"><div class="ttname"><a href="class_tools_1_1_context.html#a232854b8e97359df1687d6c24460eacf">Tools\Context\$controller</a></div><div class="ttdeci">$controller</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00064">Context.php:64</a></div></div>
@@ -191,7 +198,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_hook_event_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_hook_event_8php_source.html

@@ -129,7 +129,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_hooks_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 2 - 2
doc/html/_hooks_8php_source.html

@@ -162,7 +162,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="ttc" id="class_tools_1_1_hooks_html_a01955facbcef5c0159144d7209704be2"><div class="ttname"><a href="class_tools_1_1_hooks.html#a01955facbcef5c0159144d7209704be2">Tools\Hooks\__construct</a></div><div class="ttdeci">__construct(&amp;$context)</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00036">Hooks.php:36</a></div></div>
 <div class="ttc" id="class_tools_1_1_hooks_html_a05aec88c3516c6db5da524fbcc673aff"><div class="ttname"><a href="class_tools_1_1_hooks.html#a05aec88c3516c6db5da524fbcc673aff">Tools\Hooks\$hooks</a></div><div class="ttdeci">$hooks</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00020">Hooks.php:20</a></div></div>
 <div class="ttc" id="class_tools_1_1_hooks_html_aa8a639e43502e64c10e92114c86d0d24"><div class="ttname"><a href="class_tools_1_1_hooks.html#aa8a639e43502e64c10e92114c86d0d24">Tools\Hooks\isInHook</a></div><div class="ttdeci">isInHook($hookName)</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00086">Hooks.php:86</a></div></div>
-<div class="ttc" id="namespace_exception_html"><div class="ttname"><a href="namespace_exception.html">Exception</a></div><div class="ttdef"><b>Definition:</b> <a href="_error404_8php_source.html#l00003">Error404.php:3</a></div></div>
+<div class="ttc" id="namespace_exception_html"><div class="ttname"><a href="namespace_exception.html">Exception</a></div><div class="ttdef"><b>Definition:</b> <a href="exceptions_2_error404_8php_source.html#l00003">Error404.php:3</a></div></div>
 <div class="ttc" id="class_tools_1_1_hooks_html_a7c294642225a6c91f5d7932dde75c2ae"><div class="ttname"><a href="class_tools_1_1_hooks.html#a7c294642225a6c91f5d7932dde75c2ae">Tools\Hooks\$context</a></div><div class="ttdeci">$context</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00015">Hooks.php:15</a></div></div>
 <div class="ttc" id="class_tools_1_1_hooks_html_a4537dad3b44254124991341cc91b28fb"><div class="ttname"><a href="class_tools_1_1_hooks.html#a4537dad3b44254124991341cc91b28fb">Tools\Hooks\__get</a></div><div class="ttdeci">__get($key)</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00108">Hooks.php:108</a></div></div>
 <div class="ttc" id="class_tools_1_1_hook_event_html"><div class="ttname"><a href="class_tools_1_1_hook_event.html">Tools\HookEvent</a></div><div class="ttdef"><b>Definition:</b> <a href="_hook_event_8php_source.html#l00009">HookEvent.php:9</a></div></div>
@@ -173,7 +173,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_meta_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_meta_8php_source.html

@@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_model_base_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 131 - 129
doc/html/_model_base_8php_source.html

@@ -191,150 +191,152 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        $this-&gt;fieldsValues[$key] = $value;</div>
 <div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        <span class="keywordflow">if</span> (is_bool($value))</div>
 <div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;            $this-&gt;changed[$key] = $value ? 1 : 0;</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            $this-&gt;changed[$key] = self::$dbo-&gt;quote($value);</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        <span class="keywordflow">return</span> $value;</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    }</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">  108</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">save</a>()</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    {</div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onBeforeEntitySave&quot;</span>);</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onBeforeEntitySave&quot;</span>.$this-&gt;getTableName());</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        <span class="keywordflow">if</span> ($this-&gt;<span class="keywordtype">id</span> === null)</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        {</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;            <span class="keywordflow">if</span> (empty ($this-&gt;changed))</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;            {</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                $query = <span class="stringliteral">&quot;INSERT INTO `{$this-&gt;getTableName()}` () VALUES ()&quot;</span>;</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                $result = self::$dbo-&gt;exec($query);</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                <span class="keywordflow">if</span> (!$result)</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                    <span class="keywordflow">throw</span> new \Exception(self::$dbo-&gt;errorInfo()[2]);</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;            }</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;            {</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                $query = <span class="stringliteral">&quot;INSERT INTO `{$this-&gt;getTableName()}` (`&quot;</span> .implode(<span class="stringliteral">&quot;`,`&quot;</span>, array_keys($this-&gt;changed)) . <span class="stringliteral">&quot;`) VALUES (&quot;</span> . implode(<span class="stringliteral">&quot;,&quot;</span>, $this-&gt;changed) . <span class="stringliteral">&quot;)&quot;</span>;</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                $result = self::$dbo-&gt;exec($query);</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                <span class="keywordflow">if</span> (!$result)</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                    <span class="keywordflow">throw</span> new \Exception(self::$dbo-&gt;errorInfo()[2]);</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;                $this-&gt;changed = array();</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;            }</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;            $this-&gt;<span class="keywordtype">id</span> = self::$dbo-&gt;lastInsertId();</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        }</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        {</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;            <span class="keywordflow">if</span> (!empty($this-&gt;changed))</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;            {</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                <span class="keywordflow">if</span> ($this-&gt;<span class="keywordtype">id</span> === <span class="keyword">false</span>)</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                    <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot update private row&quot;</span>);</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                $query = <span class="stringliteral">&quot;UPDATE {$this-&gt;getTableName()} SET &quot;</span>;</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                $newValues = array();</div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                <span class="keywordflow">foreach</span> ($this-&gt;changed as $i =&gt; $j)</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                    $newValues[] = <span class="stringliteral">&quot;`{$i}`=&quot;</span> . $j;</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                $query .= implode(<span class="stringliteral">&quot;,&quot;</span>,$newValues).<span class="stringliteral">&quot; WHERE id={$this-&gt;id}&quot;</span>;</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;                $result = self::$dbo-&gt;exec($query);</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;                <span class="keywordflow">if</span> (!$result)</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                    <span class="keywordflow">throw</span> new \Exception(self::$dbo-&gt;errorInfo()[2]);</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                $this-&gt;changed = array();</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;            }</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        }</div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onAfterEntitySave&quot;</span>);</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onAfterEntitySave&quot;</span>.$this-&gt;getTableName());</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    }</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">  152</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">selects</a>($criteria = null, $orderBy = null)</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    {</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        $query = <span class="stringliteral">&quot;SELECT * FROM {$this-&gt;getTableName()}&quot;</span>;</div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        <span class="keywordflow">if</span> (!empty($criteria))</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        {</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;            $subQuery = array();</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;            <span class="keywordflow">foreach</span> ($criteria as $i =&gt; $j)</div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;            {</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                <span class="keywordflow">if</span> ($j == null)</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                    $subQuery[] = <span class="stringliteral">&quot;`{$i}` IS NULL&quot;</span>;</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (is_array($j))</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                {</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                    $inArray = [];</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                    <span class="keywordflow">foreach</span> ($j as $k)</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                        $inArray[] = self::$dbo-&gt;quote($k);</div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                    $subQuery[] = <span class="stringliteral">&quot;`{$i}` IN (&quot;</span>.implode(<span class="stringliteral">&quot;,&quot;</span>, $inArray).<span class="stringliteral">&quot;)&quot;</span>;</div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                }</div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                    $subQuery[] = <span class="stringliteral">&quot;`{$i}`=&quot;</span>.self::$dbo-&gt;quote($j);</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;            }</div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;            $query .= <span class="stringliteral">&quot; WHERE &quot;</span>.implode(<span class="stringliteral">&quot; AND &quot;</span>, $subQuery);</div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        }</div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        <span class="keywordflow">if</span> (!empty($orderBy))</div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        {</div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;            $_orderBy = array();</div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;            <span class="keywordflow">foreach</span> ($orderBy as $i =&gt; $j)</div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;            {</div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                <span class="keywordflow">if</span> (is_numeric($i))</div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                    $_orderBy[] = <span class="stringliteral">&quot;`{$j}` ASC&quot;</span>;</div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                {</div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                    $orderType = <span class="stringliteral">&quot;ASC&quot;</span>;</div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                    <span class="keywordflow">if</span> (strtoupper($j == <span class="stringliteral">&quot;DESC&quot;</span>))</div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                        $orderType = <span class="stringliteral">&quot;DESC&quot;</span>;</div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                    $_orderBy[] = <span class="stringliteral">&quot;`{$i}` {$orderType}&quot;</span>;</div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;                }</div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;            }</div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;            $query .= <span class="stringliteral">&quot; ORDER BY &quot;</span>.implode(<span class="stringliteral">&quot;,&quot;</span>, $_orderBy);</div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        }</div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        $result = self::$dbo-&gt;query($query, \PDO::FETCH_ASSOC);</div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;            <span class="keywordflow">throw</span> new \Exception(self::$dbo-&gt;errorInfo()[2]);</div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        $resultObj = array();</div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        $className = get_class($this);</div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        <span class="keywordflow">foreach</span> ($result as $i)</div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        {</div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;            $iObj = <span class="keyword">new</span> $className();</div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;            $iObj-&gt;populate($i);</div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;            $resultObj[] = $iObj;</div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        }</div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        <span class="keywordflow">return</span> $resultObj;</div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    }</div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;</div>
-<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">  206</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a>($id)</div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    {</div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        $query = <span class="stringliteral">&quot;SELECT * FROM {$this-&gt;getTableName()} WHERE id=&quot;</span>.(int)$id.<span class="stringliteral">&quot; LIMIT 1&quot;</span>;</div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        $result = self::$dbo-&gt;query($query, \PDO::FETCH_ASSOC);</div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span> || empty($result))</div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;            <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot fetch data: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        $this-&gt;populate($result-&gt;fetch());</div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    }</div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a70391280402677bbb9cb6616fb9376fb">  215</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#a70391280402677bbb9cb6616fb9376fb">populate</a>($data)</div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    {</div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        $this-&gt;<span class="keywordtype">id</span> = FALSE;</div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        <span class="keywordflow">foreach</span> ($data as $i =&gt; $j)</div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;            $this-&gt;fieldsValues[$i] = $j;</div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        <span class="keywordflow">if</span> (isset($this-&gt;fieldsValues[<span class="stringliteral">&quot;id&quot;</span>]))</div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;            $this-&gt;<span class="keywordtype">id</span> = (int) $this-&gt;fieldsValues[<span class="stringliteral">&quot;id&quot;</span>];</div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        $this-&gt;changed = array();</div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    }</div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;}</div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ($value === null)</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            $this-&gt;changed[$key] = <span class="stringliteral">&quot;NULL&quot;</span>;</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;            $this-&gt;changed[$key] = self::$dbo-&gt;quote($value);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        <span class="keywordflow">return</span> $value;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    }</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">  110</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">save</a>()</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    {</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onBeforeEntitySave&quot;</span>);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onBeforeEntitySave&quot;</span>.$this-&gt;getTableName());</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="keywordflow">if</span> ($this-&gt;<span class="keywordtype">id</span> === null)</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        {</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;            <span class="keywordflow">if</span> (empty ($this-&gt;changed))</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;            {</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                $query = <span class="stringliteral">&quot;INSERT INTO `{$this-&gt;getTableName()}` () VALUES ()&quot;</span>;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                $result = self::$dbo-&gt;exec($query);</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                <span class="keywordflow">if</span> (!$result)</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                    <span class="keywordflow">throw</span> new \Exception(self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;            }</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;            {</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                $query = <span class="stringliteral">&quot;INSERT INTO `{$this-&gt;getTableName()}` (`&quot;</span> .implode(<span class="stringliteral">&quot;`,`&quot;</span>, array_keys($this-&gt;changed)) . <span class="stringliteral">&quot;`) VALUES (&quot;</span> . implode(<span class="stringliteral">&quot;,&quot;</span>, $this-&gt;changed) . <span class="stringliteral">&quot;)&quot;</span>;</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                $result = self::$dbo-&gt;exec($query);</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;                <span class="keywordflow">if</span> (!$result)</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                    <span class="keywordflow">throw</span> new \Exception(self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                $this-&gt;changed = array();</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;            }</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;            $this-&gt;<span class="keywordtype">id</span> = self::$dbo-&gt;lastInsertId();</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        }</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        {</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;            <span class="keywordflow">if</span> (!empty($this-&gt;changed))</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;            {</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                <span class="keywordflow">if</span> ($this-&gt;<span class="keywordtype">id</span> === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                    <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot update private row&quot;</span>);</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                $query = <span class="stringliteral">&quot;UPDATE {$this-&gt;getTableName()} SET &quot;</span>;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                $newValues = array();</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                <span class="keywordflow">foreach</span> ($this-&gt;changed as $i =&gt; $j)</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;                    $newValues[] = <span class="stringliteral">&quot;`{$i}`=&quot;</span> . $j;</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;                $query .= implode(<span class="stringliteral">&quot;,&quot;</span>,$newValues).<span class="stringliteral">&quot; WHERE id={$this-&gt;id}&quot;</span>;</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                $result = self::$dbo-&gt;exec($query);</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                <span class="keywordflow">if</span> (!$result)</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                    <span class="keywordflow">throw</span> new \Exception(self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                $this-&gt;changed = array();</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;            }</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        }</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onAfterEntitySave&quot;</span>);</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onAfterEntitySave&quot;</span>.$this-&gt;getTableName());</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    }</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">  154</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">selects</a>($criteria = null, $orderBy = null)</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    {</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        $query = <span class="stringliteral">&quot;SELECT * FROM {$this-&gt;getTableName()}&quot;</span>;</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <span class="keywordflow">if</span> (!empty($criteria))</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        {</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;            $subQuery = array();</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;            <span class="keywordflow">foreach</span> ($criteria as $i =&gt; $j)</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;            {</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;                <span class="keywordflow">if</span> ($j == null)</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                    $subQuery[] = <span class="stringliteral">&quot;`{$i}` IS NULL&quot;</span>;</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (is_array($j))</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                {</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                    $inArray = [];</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                    <span class="keywordflow">foreach</span> ($j as $k)</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                        $inArray[] = self::$dbo-&gt;quote($k);</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                    $subQuery[] = <span class="stringliteral">&quot;`{$i}` IN (&quot;</span>.implode(<span class="stringliteral">&quot;,&quot;</span>, $inArray).<span class="stringliteral">&quot;)&quot;</span>;</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                }</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                    $subQuery[] = <span class="stringliteral">&quot;`{$i}`=&quot;</span>.self::$dbo-&gt;quote($j);</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;            }</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;            $query .= <span class="stringliteral">&quot; WHERE &quot;</span>.implode(<span class="stringliteral">&quot; AND &quot;</span>, $subQuery);</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        }</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        <span class="keywordflow">if</span> (!empty($orderBy))</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        {</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;            $_orderBy = array();</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;            <span class="keywordflow">foreach</span> ($orderBy as $i =&gt; $j)</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;            {</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                <span class="keywordflow">if</span> (is_numeric($i))</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                    $_orderBy[] = <span class="stringliteral">&quot;`{$j}` ASC&quot;</span>;</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                {</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                    $orderType = <span class="stringliteral">&quot;ASC&quot;</span>;</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                    <span class="keywordflow">if</span> (strtoupper($j == <span class="stringliteral">&quot;DESC&quot;</span>))</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;                        $orderType = <span class="stringliteral">&quot;DESC&quot;</span>;</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                    $_orderBy[] = <span class="stringliteral">&quot;`{$i}` {$orderType}&quot;</span>;</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                }</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;            }</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;            $query .= <span class="stringliteral">&quot; ORDER BY &quot;</span>.implode(<span class="stringliteral">&quot;,&quot;</span>, $_orderBy);</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        }</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        $result = self::$dbo-&gt;query($query, \PDO::FETCH_ASSOC);</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;            <span class="keywordflow">throw</span> new \Exception(self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        $resultObj = array();</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        $className = get_class($this);</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        <span class="keywordflow">foreach</span> ($result as $i)</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        {</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;            $iObj = <span class="keyword">new</span> $className();</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;            $iObj-&gt;populate($i);</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;            $resultObj[] = $iObj;</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        }</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        <span class="keywordflow">return</span> $resultObj;</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    }</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">  208</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a>($id)</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    {</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        $query = <span class="stringliteral">&quot;SELECT * FROM {$this-&gt;getTableName()} WHERE id=&quot;</span>.(int)$id.<span class="stringliteral">&quot; LIMIT 1&quot;</span>;</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        $result = self::$dbo-&gt;query($query, \PDO::FETCH_ASSOC);</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span> || empty($result))</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;            <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot fetch data: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        $this-&gt;populate($result-&gt;fetch());</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    }</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a70391280402677bbb9cb6616fb9376fb">  217</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#a70391280402677bbb9cb6616fb9376fb">populate</a>($data)</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    {</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;        $this-&gt;<span class="keywordtype">id</span> = FALSE;</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        <span class="keywordflow">foreach</span> ($data as $i =&gt; $j)</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;            $this-&gt;fieldsValues[$i] = $j;</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        <span class="keywordflow">if</span> (isset($this-&gt;fieldsValues[<span class="stringliteral">&quot;id&quot;</span>]))</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;            $this-&gt;<span class="keywordtype">id</span> = (int) $this-&gt;fieldsValues[<span class="stringliteral">&quot;id&quot;</span>];</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        $this-&gt;changed = array();</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    }</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;}</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;</div>
 <div class="ttc" id="class_entity_1_1_model_base_html_ae97941710d863131c700f069b109991e"><div class="ttname"><a href="class_entity_1_1_model_base.html#ae97941710d863131c700f069b109991e">Entity\ModelBase\$id</a></div><div class="ttdeci">$id</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00011">ModelBase.php:11</a></div></div>
 <div class="ttc" id="class_entity_1_1_model_base_html_a2ab1024a9b079371b23120e50fd4937c"><div class="ttname"><a href="class_entity_1_1_model_base.html#a2ab1024a9b079371b23120e50fd4937c">Entity\ModelBase\init</a></div><div class="ttdeci">static init($config=null)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00023">ModelBase.php:23</a></div></div>
 <div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
-<div class="ttc" id="class_entity_1_1_model_base_html_a224e7fc70ae3e2646cd1167f72628ac2"><div class="ttname"><a href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">Entity\ModelBase\selects</a></div><div class="ttdeci">selects($criteria=null, $orderBy=null)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00152">ModelBase.php:152</a></div></div>
-<div class="ttc" id="namespace_exception_html"><div class="ttname"><a href="namespace_exception.html">Exception</a></div><div class="ttdef"><b>Definition:</b> <a href="_error404_8php_source.html#l00003">Error404.php:3</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a224e7fc70ae3e2646cd1167f72628ac2"><div class="ttname"><a href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">Entity\ModelBase\selects</a></div><div class="ttdeci">selects($criteria=null, $orderBy=null)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00154">ModelBase.php:154</a></div></div>
+<div class="ttc" id="namespace_exception_html"><div class="ttname"><a href="namespace_exception.html">Exception</a></div><div class="ttdef"><b>Definition:</b> <a href="exceptions_2_error404_8php_source.html#l00003">Error404.php:3</a></div></div>
 <div class="ttc" id="class_entity_1_1_model_base_html_abcae69e19426269fa17be92decfce7fd"><div class="ttname"><a href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">Entity\ModelBase\getMeta</a></div><div class="ttdeci">getMeta($lang=null)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00079">ModelBase.php:79</a></div></div>
 <div class="ttc" id="class_entity_1_1_model_base_html_a79b36d71c6f1d4f9e6c4c3e34c081456"><div class="ttname"><a href="class_entity_1_1_model_base.html#a79b36d71c6f1d4f9e6c4c3e34c081456">Entity\ModelBase\__set</a></div><div class="ttdeci">__set($key, $value)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00096">ModelBase.php:96</a></div></div>
 <div class="ttc" id="class_entity_1_1_model_base_html_a8f625fd84b76c94749c8b1c992ef85ed"><div class="ttname"><a href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">Entity\ModelBase\getDbPrefix</a></div><div class="ttdeci">static getDbPrefix()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00042">ModelBase.php:42</a></div></div>
-<div class="ttc" id="class_entity_1_1_model_base_html_a20020d3878c4bc983b90ba193c6f43a3"><div class="ttname"><a href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">Entity\ModelBase\selectById</a></div><div class="ttdeci">selectById($id)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00206">ModelBase.php:206</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a20020d3878c4bc983b90ba193c6f43a3"><div class="ttname"><a href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">Entity\ModelBase\selectById</a></div><div class="ttdeci">selectById($id)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00208">ModelBase.php:208</a></div></div>
 <div class="ttc" id="class_entity_1_1_model_base_html_a4537dad3b44254124991341cc91b28fb"><div class="ttname"><a href="class_entity_1_1_model_base.html#a4537dad3b44254124991341cc91b28fb">Entity\ModelBase\__get</a></div><div class="ttdeci">__get($key)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00085">ModelBase.php:85</a></div></div>
 <div class="ttc" id="class_entity_1_1_model_base_html"><div class="ttname"><a href="class_entity_1_1_model_base.html">Entity\ModelBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00005">ModelBase.php:5</a></div></div>
 <div class="ttc" id="class_entity_1_1_model_base_html_abbda66c832a371bc9b6ec05cb8734efc"><div class="ttname"><a href="class_entity_1_1_model_base.html#abbda66c832a371bc9b6ec05cb8734efc">Entity\ModelBase\__construct</a></div><div class="ttdeci">__construct($id=null)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00015">ModelBase.php:15</a></div></div>
 <div class="ttc" id="class_entity_1_1_model_base_html_ae59aa0f62b893798e267e842e0d10228"><div class="ttname"><a href="class_entity_1_1_model_base.html#ae59aa0f62b893798e267e842e0d10228">Entity\ModelBase\setup</a></div><div class="ttdeci">static setup()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00053">ModelBase.php:53</a></div></div>
-<div class="ttc" id="class_entity_1_1_model_base_html_afc8a3c62679cf00ade9f15fb2a6d6132"><div class="ttname"><a href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">Entity\ModelBase\save</a></div><div class="ttdeci">save()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00108">ModelBase.php:108</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_afc8a3c62679cf00ade9f15fb2a6d6132"><div class="ttname"><a href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">Entity\ModelBase\save</a></div><div class="ttdeci">save()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00110">ModelBase.php:110</a></div></div>
 <div class="ttc" id="class_tools_1_1_hooks_html_a8dc5debf6c33905af409438d26ed3916"><div class="ttname"><a href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">Tools\Hooks\trigger</a></div><div class="ttdeci">trigger($hookName, $params=null)</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00062">Hooks.php:62</a></div></div>
 <div class="ttc" id="class_entity_1_1_model_base_html_a93566f2c8d709d410ae8ec46b813999b"><div class="ttname"><a href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">Entity\ModelBase\getTableName</a></div><div class="ttdeci">getTableName()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00047">ModelBase.php:47</a></div></div>
-<div class="ttc" id="class_entity_1_1_model_base_html_a70391280402677bbb9cb6616fb9376fb"><div class="ttname"><a href="class_entity_1_1_model_base.html#a70391280402677bbb9cb6616fb9376fb">Entity\ModelBase\populate</a></div><div class="ttdeci">populate($data)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00215">ModelBase.php:215</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a70391280402677bbb9cb6616fb9376fb"><div class="ttname"><a href="class_entity_1_1_model_base.html#a70391280402677bbb9cb6616fb9376fb">Entity\ModelBase\populate</a></div><div class="ttdeci">populate($data)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00217">ModelBase.php:217</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_module_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_module_8php_source.html

@@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_module_hook_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_module_hook_8php_source.html

@@ -126,7 +126,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_module_manager_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 91 - 64
doc/html/_module_manager_8php_source.html

@@ -114,82 +114,109 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;            }</div>
 <div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;            <span class="keywordflow">else</span></div>
 <div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;            {</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                die (<span class="stringliteral">&quot;out&quot;</span>);</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                $i-&gt;active = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                $i-&gt;save();</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;            }</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        }</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        $context-&gt;hookManager-&gt;loadHooks(\<a class="code" href="namespace_entity.html">Entity</a>\ModuleHook::getModules($ids));</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    }</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a167a402eddef05c09ce608f803009baa">   71</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_module_manager.html#a167a402eddef05c09ce608f803009baa">loadModule</a>($path, $module)</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    {</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        $mod = include_once($path);</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <span class="keywordflow">if</span> (!$mod || !($mod instanceof \<a class="code" href="namespace_tools.html">Tools</a>\<a class="code" href="class_tools_1_1_a_module.html">AModule</a>))</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        $mod-&gt;setContext($this-&gt;context);</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        $mod-&gt;setEntity($module);</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        $this-&gt;modules[] = $mod;</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    }</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="comment">/*</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="comment">     * TODO revoir tout</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="comment">     * @return array(AModule)</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="comment">     * Will load every modules, and return them.</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="comment">    **/</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a279ef46fb2e62ce756023d9a443d7953">   87</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_module_manager.html#a279ef46fb2e62ce756023d9a443d7953">listAvailableModules</a>()</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    {</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        $modulesRoot = $context-&gt;router-&gt;modulesPath;</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        $result = array();</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        $modules = scandir($modulesRoot, SCANDIR_SORT_NONE);</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <span class="keywordflow">foreach</span> ($modules as $i)</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        {</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;            $path = $modulesRoot.$i;</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;            <span class="keywordflow">if</span> ($i == <span class="charliteral">&#39;.&#39;</span> || $i == <span class="stringliteral">&#39;..&#39;</span> || !is_dir($path))</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                <span class="keywordflow">continue</span>;</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;            $this-&gt;loadModule($path);</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        }</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    }</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#ab1dcee2727d5614cb8c028c57d2271e8">  106</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_module_manager.html#ab1dcee2727d5614cb8c028c57d2271e8">getModuleFromId</a>($id)</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    {</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        <span class="keywordflow">foreach</span> ($this-&gt;modules as $i)</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        {</div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;            <span class="keywordflow">if</span> ($i-&gt;entity-&gt;id == $id)</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                <span class="keywordflow">return</span> $i;</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        }</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <span class="keywordflow">return</span> FALSE;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                $i-&gt;active = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                $i-&gt;save();</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;            }</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        }</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        $context-&gt;hookManager-&gt;loadHooks(\<a class="code" href="namespace_entity.html">Entity</a>\ModuleHook::getModules($ids));</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    }</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a95b745cacad4b0bb9564b5dbd66828fe">   64</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_module_manager.html#a95b745cacad4b0bb9564b5dbd66828fe">loadModuleFile</a>($path)</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    {</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        $mod = include_once($path);</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <span class="keywordflow">if</span> (!$mod || !($mod instanceof \<a class="code" href="namespace_tools.html">Tools</a>\<a class="code" href="class_tools_1_1_a_module.html">AModule</a>))</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        $mod-&gt;setContext($this-&gt;context);</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        <span class="keywordflow">return</span> $mod;</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    }</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a167a402eddef05c09ce608f803009baa">   83</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_module_manager.html#a167a402eddef05c09ce608f803009baa">loadModule</a>($path, $module)</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    {</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        $mod = $this-&gt;loadModuleFile($path);</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        <span class="keywordflow">if</span> ($mod === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        $mod-&gt;setEntity($module);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        $this-&gt;modules[] = $mod;</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    }</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a3a08c349e26f53ae15f2526ffc70a091">   98</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_module_manager.html#a3a08c349e26f53ae15f2526ffc70a091">install</a>($modulename)</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    {</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        $entity = new \Entity\Module();</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        $entity-&gt;name = $modulename;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        $entity-&gt;directory = $modulename;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        $entity-&gt;active = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        $module = $this-&gt;loadModuleFile($this-&gt;context-&gt;router-&gt;modulesPath.$modulename.<span class="stringliteral">&#39;/main.php&#39;</span>);</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        <span class="keywordflow">if</span> ($module === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        $entity-&gt;name = $module-&gt;getName();</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        $entity-&gt;description = $module-&gt;getDescription();</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <span class="keywordflow">if</span> ($module-&gt;install() == <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        $entity-&gt;save();</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        $module-&gt;setEntity($entity);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <span class="keywordflow">return</span> $module;</div>
 <div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    }</div>
 <div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a4537dad3b44254124991341cc91b28fb">  119</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_module_manager.html#a4537dad3b44254124991341cc91b28fb">__get</a>($key)</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    {</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        <span class="keywordflow">switch</span> ($key)</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        {</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;modules&quot;</span>:</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                <span class="keywordflow">return</span> $this-&gt;modules; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        }</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <span class="keywordflow">if</span> (substr($key, 0, 4) == <span class="stringliteral">&quot;_id_&quot;</span>)</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;            <span class="keywordflow">return</span> $this-&gt;getModuleFromId((<span class="keywordtype">int</span>) substr($key, 4));</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    }</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;}</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="comment">/*</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="comment">     * TODO revoir tout</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="comment">     * @return array(AModule)</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="comment">     * Will load every modules, and return them.</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="comment">    **/</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a279ef46fb2e62ce756023d9a443d7953">  121</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_module_manager.html#a279ef46fb2e62ce756023d9a443d7953">listAvailableModules</a>()</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    {</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        $modulesRoot = $context-&gt;router-&gt;modulesPath;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        $result = array();</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        $modules = scandir($modulesRoot, SCANDIR_SORT_NONE);</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <span class="keywordflow">foreach</span> ($modules as $i)</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        {</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;            $path = $modulesRoot.$i;</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;            <span class="keywordflow">if</span> ($i == <span class="charliteral">&#39;.&#39;</span> || $i == <span class="stringliteral">&#39;..&#39;</span> || !is_dir($path))</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;            $this-&gt;loadModule($path);</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        }</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    }</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#ab1dcee2727d5614cb8c028c57d2271e8">  140</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_module_manager.html#ab1dcee2727d5614cb8c028c57d2271e8">getModuleFromId</a>($id)</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    {</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <span class="keywordflow">foreach</span> ($this-&gt;modules as $i)</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        {</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;            <span class="keywordflow">if</span> ($i-&gt;entity-&gt;id == $id)</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                <span class="keywordflow">return</span> $i;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        }</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        <span class="keywordflow">return</span> FALSE;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    }</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a4537dad3b44254124991341cc91b28fb">  153</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_module_manager.html#a4537dad3b44254124991341cc91b28fb">__get</a>($key)</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    {</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <span class="keywordflow">switch</span> ($key)</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        {</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;modules&quot;</span>:</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                <span class="keywordflow">return</span> $this-&gt;modules; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        }</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <span class="keywordflow">if</span> (substr($key, 0, 4) == <span class="stringliteral">&quot;_id_&quot;</span>)</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;            <span class="keywordflow">return</span> $this-&gt;getModuleFromId((<span class="keywordtype">int</span>) substr($key, 4));</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    }</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;}</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div>
 <div class="ttc" id="class_tools_1_1_module_manager_html_a7c294642225a6c91f5d7932dde75c2ae"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a7c294642225a6c91f5d7932dde75c2ae">Tools\ModuleManager\$context</a></div><div class="ttdeci">$context</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00016">ModuleManager.php:16</a></div></div>
 <div class="ttc" id="class_entity_1_1_module_html_a5a5d2fbfed8c77d8760c2d0473e92220"><div class="ttname"><a href="class_entity_1_1_module.html#a5a5d2fbfed8c77d8760c2d0473e92220">Entity\Module\getActivated</a></div><div class="ttdeci">static getActivated()</div><div class="ttdef"><b>Definition:</b> <a href="_module_8php_source.html#l00022">Module.php:22</a></div></div>
 <div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
 <div class="ttc" id="class_tools_1_1_module_manager_html"><div class="ttname"><a href="class_tools_1_1_module_manager.html">Tools\ModuleManager</a></div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00009">ModuleManager.php:9</a></div></div>
-<div class="ttc" id="class_tools_1_1_module_manager_html_a279ef46fb2e62ce756023d9a443d7953"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a279ef46fb2e62ce756023d9a443d7953">Tools\ModuleManager\listAvailableModules</a></div><div class="ttdeci">listAvailableModules()</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00087">ModuleManager.php:87</a></div></div>
-<div class="ttc" id="class_tools_1_1_module_manager_html_a167a402eddef05c09ce608f803009baa"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a167a402eddef05c09ce608f803009baa">Tools\ModuleManager\loadModule</a></div><div class="ttdeci">loadModule($path, $module)</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00071">ModuleManager.php:71</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_a95b745cacad4b0bb9564b5dbd66828fe"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a95b745cacad4b0bb9564b5dbd66828fe">Tools\ModuleManager\loadModuleFile</a></div><div class="ttdeci">loadModuleFile($path)</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00064">ModuleManager.php:64</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_a279ef46fb2e62ce756023d9a443d7953"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a279ef46fb2e62ce756023d9a443d7953">Tools\ModuleManager\listAvailableModules</a></div><div class="ttdeci">listAvailableModules()</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00121">ModuleManager.php:121</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_a167a402eddef05c09ce608f803009baa"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a167a402eddef05c09ce608f803009baa">Tools\ModuleManager\loadModule</a></div><div class="ttdeci">loadModule($path, $module)</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00083">ModuleManager.php:83</a></div></div>
 <div class="ttc" id="class_tools_1_1_module_manager_html_a01955facbcef5c0159144d7209704be2"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a01955facbcef5c0159144d7209704be2">Tools\ModuleManager\__construct</a></div><div class="ttdeci">__construct(&amp;$context)</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00038">ModuleManager.php:38</a></div></div>
 <div class="ttc" id="class_tools_1_1_a_module_html"><div class="ttname"><a href="class_tools_1_1_a_module.html">Tools\AModule</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00009">AModule.php:9</a></div></div>
-<div class="ttc" id="class_tools_1_1_module_manager_html_a4537dad3b44254124991341cc91b28fb"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a4537dad3b44254124991341cc91b28fb">Tools\ModuleManager\__get</a></div><div class="ttdeci">__get($key)</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00119">ModuleManager.php:119</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_a4537dad3b44254124991341cc91b28fb"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a4537dad3b44254124991341cc91b28fb">Tools\ModuleManager\__get</a></div><div class="ttdeci">__get($key)</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00153">ModuleManager.php:153</a></div></div>
 <div class="ttc" id="namespace_tools_html"><div class="ttname"><a href="namespace_tools.html">Tools</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00003">AController.php:3</a></div></div>
-<div class="ttc" id="class_tools_1_1_module_manager_html_ab1dcee2727d5614cb8c028c57d2271e8"><div class="ttname"><a href="class_tools_1_1_module_manager.html#ab1dcee2727d5614cb8c028c57d2271e8">Tools\ModuleManager\getModuleFromId</a></div><div class="ttdeci">getModuleFromId($id)</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00106">ModuleManager.php:106</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_ab1dcee2727d5614cb8c028c57d2271e8"><div class="ttname"><a href="class_tools_1_1_module_manager.html#ab1dcee2727d5614cb8c028c57d2271e8">Tools\ModuleManager\getModuleFromId</a></div><div class="ttdeci">getModuleFromId($id)</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00140">ModuleManager.php:140</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_a3a08c349e26f53ae15f2526ffc70a091"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a3a08c349e26f53ae15f2526ffc70a091">Tools\ModuleManager\install</a></div><div class="ttdeci">install($modulename)</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00098">ModuleManager.php:98</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_product_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_product_8php_source.html

@@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_product_controller_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_product_controller_8php_source.html

@@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_router_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 145 - 126
doc/html/_router_8php_source.html

@@ -107,144 +107,163 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div>
 <div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#ad167d71585142809d420fe2a3b66d56c">   51</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_router.html#ad167d71585142809d420fe2a3b66d56c">$routeParams</a>;</div>
 <div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a2e9488ba4915c293adea1fd7933de39b">   76</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#a2e9488ba4915c293adea1fd7933de39b">__construct</a>($server, $context)</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    {</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        $pos = strrpos($server[<span class="stringliteral">&quot;SCRIPT_NAME&quot;</span>], <span class="stringliteral">&quot;/&quot;</span>);</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        $relativePath = (($pos === FALSE) ? <span class="stringliteral">&quot;&quot;</span> : substr($server[<span class="stringliteral">&quot;SCRIPT_NAME&quot;</span>], 0, $pos));</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        $this-&gt;rootPath = $server[<span class="stringliteral">&quot;DOCUMENT_ROOT&quot;</span>] . $relativePath . <span class="stringliteral">&quot;/&quot;</span>;</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        $this-&gt;rootUrl = $server[<span class="stringliteral">&quot;REQUEST_SCHEME&quot;</span>] . <span class="stringliteral">&quot;://&quot;</span> . $server[<span class="stringliteral">&quot;HTTP_HOST&quot;</span>] . $relativePath .<span class="stringliteral">&quot;/&quot;</span>;</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        $this-&gt;requestUrl = substr($server[<span class="stringliteral">&quot;REQUEST_URI&quot;</span>], count($this-&gt;rootUrl) -1);</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        $this-&gt;context = $context;</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        $this-&gt;routes = array();</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    }</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a2d1b9c00619ae1b43fa06167ab04cc7b">   92</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#a2d1b9c00619ae1b43fa06167ab04cc7b">init</a>($server)</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    {</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        $siteUrl = <a class="code" href="class_entity_1_1_config.html#af66f143ec797389e3ade6952ef7808e2">\Entity\Config::getConfig</a>(null, <span class="stringliteral">&quot;siteUrl&quot;</span>);</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <span class="keywordflow">if</span> ($siteUrl != $server[<span class="stringliteral">&quot;HTTP_HOST&quot;</span>] &amp;&amp; $siteUrl !== null)</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        {</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;            header(<span class="stringliteral">&quot;location: http://{$siteUrl}{$server[&#39;REQUEST_URI&#39;]}&quot;</span>);</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;            die;</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        }</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    }</div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a4001f7ed8b89fa23b5b1c77c8e320262">  108</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#a4001f7ed8b89fa23b5b1c77c8e320262">serveUrl</a>()</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    {</div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <span class="comment">//TODO trigger hook GET, POST</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        $this-&gt;prepareUrl();</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        $requestParams = explode(<span class="stringliteral">&quot;/&quot;</span>, $this-&gt;requestUrl);</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <span class="keywordflow">foreach</span> ($this-&gt;routes as $i)</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        {</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;            $routeParams = explode(<span class="stringliteral">&quot;/&quot;</span>, $i[0]);</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;            $p = $this-&gt;routeMatch($requestParams, $routeParams);</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;            <span class="keywordflow">if</span> (!$p)</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                <span class="keywordflow">continue</span>;</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;            $controller = $this-&gt;createController($i[1], $p);</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;            <span class="keywordflow">if</span> ($controller)</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                <span class="keywordflow">return</span> $controller;</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        }</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    }</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#ac721ad55028ff6c8fd3c006570fc475e">  132</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#ac721ad55028ff6c8fd3c006570fc475e">createController</a>($className, $params)</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    {</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        <span class="keywordflow">if</span> (!class_exists($className))</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        <span class="keywordflow">try</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        {</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;            $this-&gt;routeParams = $params;</div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;            $result = <span class="keyword">new</span> $className($this-&gt;context, $params);</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        }</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <span class="keywordflow">catch</span> (\<a class="code" href="namespace_exception.html">Exception</a>\Error404 $e)</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        {</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        }</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        <span class="keywordflow">if</span> (!($result instanceof \<a class="code" href="namespace_tools.html">Tools</a>\<a class="code" href="class_tools_1_1_a_controller.html">AController</a>))</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        <span class="keywordflow">return</span> $result;</div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    }</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#aca9c4092ad41ef8f6db2c3ca579a1a47">  156</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#aca9c4092ad41ef8f6db2c3ca579a1a47">routeMatch</a>($request, $route)</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    {</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        $i = count($request);</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        $params = array();</div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <span class="keywordflow">if</span> ($i != count($route))</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        <span class="keywordflow">while</span> ($i)</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        {</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;            $i--;</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;            <span class="keywordflow">if</span> ($route[$i] == <span class="stringliteral">&#39;&#39;</span> &amp;&amp; $request[$i] == <span class="stringliteral">&#39;&#39;</span>)</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                <span class="keywordflow">continue</span>;</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;            <span class="keywordflow">if</span> ($route[$i] == <span class="stringliteral">&#39;&#39;</span> || $request[$i] == <span class="stringliteral">&#39;&#39;</span>)</div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;            <span class="keywordflow">if</span> ($route[$i][0] != <span class="charliteral">&#39;:&#39;</span> &amp;&amp; ($route[$i] != $request[$i]))</div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;            <span class="keywordflow">if</span> ($route[$i][0] == <span class="charliteral">&#39;:&#39;</span>)</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                $params[$route[$i]] = $request[$i];</div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;            $params[$i -1] = $request[$i];</div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        }</div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        <span class="keywordflow">return</span> array_reverse($params);</div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    }</div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a5203c224e8eb5fc1072a980c264d33c1">  182</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#a5203c224e8eb5fc1072a980c264d33c1">prepareUrl</a>()</div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    {</div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        $fetcher = new \Entity\Cms();</div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        $pages = $fetcher-&gt;selects(null, array(<span class="stringliteral">&quot;order&quot;</span>));</div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        <span class="keywordflow">foreach</span> ($pages as $i)</div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;            $this-&gt;doRouteAdd($i-&gt;shurl, $i-&gt;controller);</div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    }</div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a3dc609b3f27a881888ccf4a8c2df6ff4">  194</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#a3dc609b3f27a881888ccf4a8c2df6ff4">doRouteAdd</a>($route, $controller)</div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    {</div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        $this-&gt;routes[] = array($route, $controller);</div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    }</div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#aaba248f1b462a6b58536ee8c2a835054">  209</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#aaba248f1b462a6b58536ee8c2a835054">routeAdd</a>($route, $controller)</div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    {</div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        <span class="keywordflow">if</span> (!$this-&gt;context-&gt;hookManager-&gt;isInHook(<span class="stringliteral">&quot;routerSetup&quot;</span>))</div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;            <span class="keywordflow">throw</span> <span class="keyword">new</span> \<a class="code" href="namespace_exception.html">Exception</a>(<span class="stringliteral">&quot;You can only add routes from `routerSetup&#39; hook&quot;</span>);</div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        $this-&gt;doRouteAdd($route, $controller);</div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    }</div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a4537dad3b44254124991341cc91b28fb">  219</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#a4537dad3b44254124991341cc91b28fb">__get</a>($key)</div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    {</div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        <span class="keywordflow">switch</span> ($key)</div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        {</div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;rootPath&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootPath; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;rootUrl&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootUrl; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;modulesPath&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootPath.<span class="stringliteral">&quot;content/modules/&quot;</span>; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;modulesUrl&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootUrl.<span class="stringliteral">&quot;content/modules/&quot;</span>; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;themesPath&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootPath.<span class="stringliteral">&quot;content/theme/&quot;</span>; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;themesUrl&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootUrl.<span class="stringliteral">&quot;content/theme/&quot;</span>; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        }</div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    }</div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;}</div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;</div>
-<div class="ttc" id="class_tools_1_1_router_html_a3dc609b3f27a881888ccf4a8c2df6ff4"><div class="ttname"><a href="class_tools_1_1_router.html#a3dc609b3f27a881888ccf4a8c2df6ff4">Tools\Router\doRouteAdd</a></div><div class="ttdeci">doRouteAdd($route, $controller)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00194">Router.php:194</a></div></div>
-<div class="ttc" id="class_tools_1_1_router_html_a5203c224e8eb5fc1072a980c264d33c1"><div class="ttname"><a href="class_tools_1_1_router.html#a5203c224e8eb5fc1072a980c264d33c1">Tools\Router\prepareUrl</a></div><div class="ttdeci">prepareUrl()</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00182">Router.php:182</a></div></div>
-<div class="ttc" id="class_tools_1_1_router_html_a4001f7ed8b89fa23b5b1c77c8e320262"><div class="ttname"><a href="class_tools_1_1_router.html#a4001f7ed8b89fa23b5b1c77c8e320262">Tools\Router\serveUrl</a></div><div class="ttdeci">serveUrl()</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00108">Router.php:108</a></div></div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a6f46a4fa02fac7e14d194e8c618cc045">   57</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_router.html#a6f46a4fa02fac7e14d194e8c618cc045">$overridden</a>;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a2e9488ba4915c293adea1fd7933de39b">   82</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#a2e9488ba4915c293adea1fd7933de39b">__construct</a>($server, $context)</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    {</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        $pos = strrpos($server[<span class="stringliteral">&quot;SCRIPT_NAME&quot;</span>], <span class="stringliteral">&quot;/&quot;</span>);</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        $relativePath = (($pos === FALSE) ? <span class="stringliteral">&quot;&quot;</span> : substr($server[<span class="stringliteral">&quot;SCRIPT_NAME&quot;</span>], 0, $pos));</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        $this-&gt;rootPath = $server[<span class="stringliteral">&quot;DOCUMENT_ROOT&quot;</span>] . $relativePath . <span class="stringliteral">&quot;/&quot;</span>;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        $this-&gt;rootUrl = $server[<span class="stringliteral">&quot;REQUEST_SCHEME&quot;</span>] . <span class="stringliteral">&quot;://&quot;</span> . $server[<span class="stringliteral">&quot;HTTP_HOST&quot;</span>] . $relativePath .<span class="stringliteral">&quot;/&quot;</span>;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        $this-&gt;requestUrl = substr($server[<span class="stringliteral">&quot;REQUEST_URI&quot;</span>], count($this-&gt;rootUrl) -1);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        $this-&gt;context = $context;</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        $this-&gt;routes = array();</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        $this-&gt;overridden = null;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    }</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a2d1b9c00619ae1b43fa06167ab04cc7b">   99</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#a2d1b9c00619ae1b43fa06167ab04cc7b">init</a>($server)</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    {</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        $siteUrl = <a class="code" href="class_entity_1_1_config.html#af66f143ec797389e3ade6952ef7808e2">\Entity\Config::getConfig</a>(null, <span class="stringliteral">&quot;siteUrl&quot;</span>);</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <span class="comment">// @codeCoverageIgnoreStart</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="comment">// This code is tested under another process</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        <span class="keywordflow">if</span> ($siteUrl != $server[<span class="stringliteral">&quot;HTTP_HOST&quot;</span>] &amp;&amp; $siteUrl !== null)</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        {</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;            header(<span class="stringliteral">&quot;location: http://{$siteUrl}{$server[&#39;REQUEST_URI&#39;]}&quot;</span>);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;            die;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        }</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <span class="comment">// @codeCoverageIgnoreEnd</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    }</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a4001f7ed8b89fa23b5b1c77c8e320262">  118</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#a4001f7ed8b89fa23b5b1c77c8e320262">serveUrl</a>()</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    {</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        <span class="comment">//TODO trigger hook GET, POST</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        $this-&gt;prepareUrl();</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        $requestParams = explode(<span class="stringliteral">&quot;/&quot;</span>, $this-&gt;requestUrl);</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="keywordflow">foreach</span> ($this-&gt;routes as $i)</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        {</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;            $routeParams = explode(<span class="stringliteral">&quot;/&quot;</span>, $i[0]);</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;            $p = $this-&gt;routeMatch($requestParams, $routeParams);</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;            <span class="keywordflow">if</span> ($p === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;            $controller = $this-&gt;createController($i[1], $p);</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;            <span class="keywordflow">if</span> ($controller)</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;                <span class="keywordflow">return</span> $controller;</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        }</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    }</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#ac721ad55028ff6c8fd3c006570fc475e">  142</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#ac721ad55028ff6c8fd3c006570fc475e">createController</a>($className, $params)</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    {</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        <span class="keywordflow">if</span> (!class_exists($className))</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        $this-&gt;routeParams = $params;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        $result = null;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <span class="keywordflow">try</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        {</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;            $result = <span class="keyword">new</span> $className($this-&gt;context, $params);</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;            <span class="keywordflow">if</span> (!($result instanceof \<a class="code" href="namespace_tools.html">Tools</a>\<a class="code" href="class_tools_1_1_a_controller.html">AController</a>))</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        }</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        <span class="keywordflow">catch</span> (\<a class="code" href="namespace_exception.html">Exception</a>\Error404 $e)</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        {</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        }</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <span class="keywordflow">return</span> $result;</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    }</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#aca9c4092ad41ef8f6db2c3ca579a1a47">  167</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#aca9c4092ad41ef8f6db2c3ca579a1a47">routeMatch</a>($request, $route)</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    {</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        $i = count($request);</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        $params = array();</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        <span class="keywordflow">if</span> ($i != count($route))</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <span class="keywordflow">while</span> ($i)</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        {</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;            $i--;</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;            <span class="keywordflow">if</span> ($route[$i] == <span class="stringliteral">&#39;&#39;</span> &amp;&amp; $request[$i] == <span class="stringliteral">&#39;&#39;</span>)</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;            <span class="keywordflow">if</span> ($route[$i] == <span class="stringliteral">&#39;&#39;</span> || $request[$i] == <span class="stringliteral">&#39;&#39;</span>)</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;            <span class="keywordflow">if</span> ($route[$i][0] != <span class="charliteral">&#39;:&#39;</span> &amp;&amp; ($route[$i] != $request[$i]))</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;            <span class="keywordflow">if</span> ($route[$i][0] == <span class="charliteral">&#39;:&#39;</span>)</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                $params[$route[$i]] = $request[$i];</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;            $params[$i -1] = $request[$i];</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        }</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        <span class="keywordflow">return</span> array_reverse($params);</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    }</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a5203c224e8eb5fc1072a980c264d33c1">  193</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#a5203c224e8eb5fc1072a980c264d33c1">prepareUrl</a>()</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    {</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        $fetcher = new \Entity\Cms();</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        $pages = $fetcher-&gt;selects(null, array(<span class="stringliteral">&quot;order&quot;</span>));</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        <span class="keywordflow">foreach</span> ($pages as $i)</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;            $this-&gt;doRouteAdd($i-&gt;shurl, $i-&gt;controller);</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    }</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div>
+<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a3dc609b3f27a881888ccf4a8c2df6ff4">  205</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#a3dc609b3f27a881888ccf4a8c2df6ff4">doRouteAdd</a>($route, $controller)</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    {</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        $this-&gt;routes[] = array($route, $controller);</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    }</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div>
+<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#aaba248f1b462a6b58536ee8c2a835054">  220</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#aaba248f1b462a6b58536ee8c2a835054">routeAdd</a>($route, $controller)</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    {</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        <span class="keywordflow">if</span> (!$this-&gt;context-&gt;hookManager-&gt;isInHook(<span class="stringliteral">&quot;routerSetup&quot;</span>))</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;            <span class="keywordflow">throw</span> <span class="keyword">new</span> \<a class="code" href="namespace_exception.html">Exception</a>(<span class="stringliteral">&quot;You can only add routes from `routerSetup&#39; hook&quot;</span>);</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        $this-&gt;doRouteAdd($route, $controller);</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    }</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#acccacc202e24a0a615dd1ccf88ff8435">  235</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#acccacc202e24a0a615dd1ccf88ff8435">overrideUrl</a>($type, $value)</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    {</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;        <span class="keywordflow">if</span> (!$this-&gt;context-&gt;isTestingEnvironment())</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;        $this-&gt;overridden[$type] = $value;</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    }</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a4537dad3b44254124991341cc91b28fb">  246</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#a4537dad3b44254124991341cc91b28fb">__get</a>($key)</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    {</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;        <span class="keywordflow">if</span> (isset($this-&gt;overridden) &amp;&amp; in_array($key, array(<span class="stringliteral">&quot;modulesPath&quot;</span>)))</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;            <span class="keywordflow">return</span> $this-&gt;overridden[$key];</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        <span class="keywordflow">switch</span> ($key)</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        {</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;rootPath&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootPath; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;rootUrl&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootUrl; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;modulesPath&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootPath.<span class="stringliteral">&quot;content/modules/&quot;</span>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;modulesUrl&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootUrl.<span class="stringliteral">&quot;content/modules/&quot;</span>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;themesPath&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootPath.<span class="stringliteral">&quot;content/theme/&quot;</span>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;themesUrl&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootUrl.<span class="stringliteral">&quot;content/theme/&quot;</span>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        }</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    }</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;}</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;</div>
+<div class="ttc" id="class_tools_1_1_router_html_a3dc609b3f27a881888ccf4a8c2df6ff4"><div class="ttname"><a href="class_tools_1_1_router.html#a3dc609b3f27a881888ccf4a8c2df6ff4">Tools\Router\doRouteAdd</a></div><div class="ttdeci">doRouteAdd($route, $controller)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00205">Router.php:205</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_a5203c224e8eb5fc1072a980c264d33c1"><div class="ttname"><a href="class_tools_1_1_router.html#a5203c224e8eb5fc1072a980c264d33c1">Tools\Router\prepareUrl</a></div><div class="ttdeci">prepareUrl()</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00193">Router.php:193</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_a4001f7ed8b89fa23b5b1c77c8e320262"><div class="ttname"><a href="class_tools_1_1_router.html#a4001f7ed8b89fa23b5b1c77c8e320262">Tools\Router\serveUrl</a></div><div class="ttdeci">serveUrl()</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00118">Router.php:118</a></div></div>
 <div class="ttc" id="class_tools_1_1_router_html_a8f7eb04a54e0f0bfc0cedeb9899ce4a8"><div class="ttname"><a href="class_tools_1_1_router.html#a8f7eb04a54e0f0bfc0cedeb9899ce4a8">Tools\Router\$routes</a></div><div class="ttdeci">$routes</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00034">Router.php:34</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_a6f46a4fa02fac7e14d194e8c618cc045"><div class="ttname"><a href="class_tools_1_1_router.html#a6f46a4fa02fac7e14d194e8c618cc045">Tools\Router\$overridden</a></div><div class="ttdeci">$overridden</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00057">Router.php:57</a></div></div>
 <div class="ttc" id="class_tools_1_1_router_html_abaa9f54c924a22e8c0169f443efd1055"><div class="ttname"><a href="class_tools_1_1_router.html#abaa9f54c924a22e8c0169f443efd1055">Tools\Router\$rootPath</a></div><div class="ttdeci">$rootPath</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00016">Router.php:16</a></div></div>
-<div class="ttc" id="class_tools_1_1_router_html_a4537dad3b44254124991341cc91b28fb"><div class="ttname"><a href="class_tools_1_1_router.html#a4537dad3b44254124991341cc91b28fb">Tools\Router\__get</a></div><div class="ttdeci">__get($key)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00219">Router.php:219</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_a4537dad3b44254124991341cc91b28fb"><div class="ttname"><a href="class_tools_1_1_router.html#a4537dad3b44254124991341cc91b28fb">Tools\Router\__get</a></div><div class="ttdeci">__get($key)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00246">Router.php:246</a></div></div>
 <div class="ttc" id="class_tools_1_1_router_html_ad167d71585142809d420fe2a3b66d56c"><div class="ttname"><a href="class_tools_1_1_router.html#ad167d71585142809d420fe2a3b66d56c">Tools\Router\$routeParams</a></div><div class="ttdeci">$routeParams</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00051">Router.php:51</a></div></div>
-<div class="ttc" id="namespace_exception_html"><div class="ttname"><a href="namespace_exception.html">Exception</a></div><div class="ttdef"><b>Definition:</b> <a href="_error404_8php_source.html#l00003">Error404.php:3</a></div></div>
+<div class="ttc" id="namespace_exception_html"><div class="ttname"><a href="namespace_exception.html">Exception</a></div><div class="ttdef"><b>Definition:</b> <a href="exceptions_2_error404_8php_source.html#l00003">Error404.php:3</a></div></div>
 <div class="ttc" id="class_tools_1_1_router_html"><div class="ttname"><a href="class_tools_1_1_router.html">Tools\Router</a></div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00009">Router.php:9</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_acccacc202e24a0a615dd1ccf88ff8435"><div class="ttname"><a href="class_tools_1_1_router.html#acccacc202e24a0a615dd1ccf88ff8435">Tools\Router\overrideUrl</a></div><div class="ttdeci">overrideUrl($type, $value)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00235">Router.php:235</a></div></div>
 <div class="ttc" id="class_tools_1_1_router_html_acbb09e02c973fc56c7395cc5b9a85123"><div class="ttname"><a href="class_tools_1_1_router.html#acbb09e02c973fc56c7395cc5b9a85123">Tools\Router\$requestUrl</a></div><div class="ttdeci">$requestUrl</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00029">Router.php:29</a></div></div>
 <div class="ttc" id="class_tools_1_1_router_html_a0de279007713709c32cdf155ad3c63cd"><div class="ttname"><a href="class_tools_1_1_router.html#a0de279007713709c32cdf155ad3c63cd">Tools\Router\$rootUrl</a></div><div class="ttdeci">$rootUrl</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00023">Router.php:23</a></div></div>
-<div class="ttc" id="class_entity_1_1_config_html_af66f143ec797389e3ade6952ef7808e2"><div class="ttname"><a href="class_entity_1_1_config.html#af66f143ec797389e3ade6952ef7808e2">Entity\Config\getConfig</a></div><div class="ttdeci">static getConfig($lang=null, $key=null, $defaultValue=null)</div><div class="ttdef"><b>Definition:</b> <a href="_config_8php_source.html#l00023">Config.php:23</a></div></div>
-<div class="ttc" id="class_tools_1_1_router_html_a2e9488ba4915c293adea1fd7933de39b"><div class="ttname"><a href="class_tools_1_1_router.html#a2e9488ba4915c293adea1fd7933de39b">Tools\Router\__construct</a></div><div class="ttdeci">__construct($server, $context)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00076">Router.php:76</a></div></div>
-<div class="ttc" id="class_tools_1_1_router_html_ac721ad55028ff6c8fd3c006570fc475e"><div class="ttname"><a href="class_tools_1_1_router.html#ac721ad55028ff6c8fd3c006570fc475e">Tools\Router\createController</a></div><div class="ttdeci">createController($className, $params)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00132">Router.php:132</a></div></div>
+<div class="ttc" id="class_entity_1_1_config_html_af66f143ec797389e3ade6952ef7808e2"><div class="ttname"><a href="class_entity_1_1_config.html#af66f143ec797389e3ade6952ef7808e2">Entity\Config\getConfig</a></div><div class="ttdeci">static getConfig($lang=null, $key=null, $defaultValue=null)</div><div class="ttdef"><b>Definition:</b> <a href="_config_8php_source.html#l00043">Config.php:43</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_a2e9488ba4915c293adea1fd7933de39b"><div class="ttname"><a href="class_tools_1_1_router.html#a2e9488ba4915c293adea1fd7933de39b">Tools\Router\__construct</a></div><div class="ttdeci">__construct($server, $context)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00082">Router.php:82</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_ac721ad55028ff6c8fd3c006570fc475e"><div class="ttname"><a href="class_tools_1_1_router.html#ac721ad55028ff6c8fd3c006570fc475e">Tools\Router\createController</a></div><div class="ttdeci">createController($className, $params)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00142">Router.php:142</a></div></div>
 <div class="ttc" id="namespace_tools_html"><div class="ttname"><a href="namespace_tools.html">Tools</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00003">AController.php:3</a></div></div>
 <div class="ttc" id="class_tools_1_1_router_html_a7c294642225a6c91f5d7932dde75c2ae"><div class="ttname"><a href="class_tools_1_1_router.html#a7c294642225a6c91f5d7932dde75c2ae">Tools\Router\$context</a></div><div class="ttdeci">$context</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00041">Router.php:41</a></div></div>
-<div class="ttc" id="class_tools_1_1_router_html_a2d1b9c00619ae1b43fa06167ab04cc7b"><div class="ttname"><a href="class_tools_1_1_router.html#a2d1b9c00619ae1b43fa06167ab04cc7b">Tools\Router\init</a></div><div class="ttdeci">init($server)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00092">Router.php:92</a></div></div>
-<div class="ttc" id="class_tools_1_1_router_html_aaba248f1b462a6b58536ee8c2a835054"><div class="ttname"><a href="class_tools_1_1_router.html#aaba248f1b462a6b58536ee8c2a835054">Tools\Router\routeAdd</a></div><div class="ttdeci">routeAdd($route, $controller)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00209">Router.php:209</a></div></div>
-<div class="ttc" id="class_tools_1_1_router_html_aca9c4092ad41ef8f6db2c3ca579a1a47"><div class="ttname"><a href="class_tools_1_1_router.html#aca9c4092ad41ef8f6db2c3ca579a1a47">Tools\Router\routeMatch</a></div><div class="ttdeci">routeMatch($request, $route)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00156">Router.php:156</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_a2d1b9c00619ae1b43fa06167ab04cc7b"><div class="ttname"><a href="class_tools_1_1_router.html#a2d1b9c00619ae1b43fa06167ab04cc7b">Tools\Router\init</a></div><div class="ttdeci">init($server)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00099">Router.php:99</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_aaba248f1b462a6b58536ee8c2a835054"><div class="ttname"><a href="class_tools_1_1_router.html#aaba248f1b462a6b58536ee8c2a835054">Tools\Router\routeAdd</a></div><div class="ttdeci">routeAdd($route, $controller)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00220">Router.php:220</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_aca9c4092ad41ef8f6db2c3ca579a1a47"><div class="ttname"><a href="class_tools_1_1_router.html#aca9c4092ad41ef8f6db2c3ca579a1a47">Tools\Router\routeMatch</a></div><div class="ttdeci">routeMatch($request, $route)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00167">Router.php:167</a></div></div>
 <div class="ttc" id="class_tools_1_1_a_controller_html"><div class="ttname"><a href="class_tools_1_1_a_controller.html">Tools\AController</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00011">AController.php:11</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/_user_8php.html

@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 2 - 2
doc/html/_user_8php_source.html

@@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;}</div>
 <div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div>
 <div class="ttc" id="class_entity_1_1_user_html_aa966adc12c56a4cc70da92207fa50929"><div class="ttname"><a href="class_entity_1_1_user.html#aa966adc12c56a4cc70da92207fa50929">Entity\User\install</a></div><div class="ttdeci">install()</div><div class="ttdef"><b>Definition:</b> <a href="_user_8php_source.html#l00007">User.php:7</a></div></div>
-<div class="ttc" id="class_tools_1_1_context_html_aa3fe42ba4c6ff4bf9fe17a836d6b593f"><div class="ttname"><a href="class_tools_1_1_context.html#aa3fe42ba4c6ff4bf9fe17a836d6b593f">Tools\Context\getContext</a></div><div class="ttdeci">static getContext()</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00146">Context.php:146</a></div></div>
+<div class="ttc" id="class_tools_1_1_context_html_aa3fe42ba4c6ff4bf9fe17a836d6b593f"><div class="ttname"><a href="class_tools_1_1_context.html#aa3fe42ba4c6ff4bf9fe17a836d6b593f">Tools\Context\getContext</a></div><div class="ttdeci">static getContext()</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00155">Context.php:155</a></div></div>
 <div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
 <div class="ttc" id="class_entity_1_1_user_html_a79b36d71c6f1d4f9e6c4c3e34c081456"><div class="ttname"><a href="class_entity_1_1_user.html#a79b36d71c6f1d4f9e6c4c3e34c081456">Entity\User\__set</a></div><div class="ttdeci">__set($key, $value)</div><div class="ttdef"><b>Definition:</b> <a href="_user_8php_source.html#l00045">User.php:45</a></div></div>
 <div class="ttc" id="class_entity_1_1_user_html"><div class="ttname"><a href="class_entity_1_1_user.html">Entity\User</a></div><div class="ttdef"><b>Definition:</b> <a href="_user_8php_source.html#l00005">User.php:5</a></div></div>
@@ -153,7 +153,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 29 - 28
doc/html/annotated.html

@@ -91,39 +91,40 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
 <tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_controller.html" target="_self">Controller</a></td><td class="desc"></td></tr>
 <tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_controller_1_1_category_controller.html" target="_self">CategoryController</a></td><td class="desc"></td></tr>
-<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_controller_1_1_product_controller.html" target="_self">ProductController</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_entity.html" target="_self">Entity</a></td><td class="desc"></td></tr>
-<tr id="row_1_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_address.html" target="_self">Address</a></td><td class="desc"></td></tr>
-<tr id="row_1_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_admin.html" target="_self">Admin</a></td><td class="desc"></td></tr>
-<tr id="row_1_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_cart.html" target="_self">Cart</a></td><td class="desc"></td></tr>
-<tr id="row_1_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_cart_product.html" target="_self">CartProduct</a></td><td class="desc"></td></tr>
-<tr id="row_1_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_category.html" target="_self">Category</a></td><td class="desc"></td></tr>
-<tr id="row_1_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_cms.html" target="_self">Cms</a></td><td class="desc"></td></tr>
-<tr id="row_1_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_config.html" target="_self">Config</a></td><td class="desc"></td></tr>
-<tr id="row_1_7_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_meta.html" target="_self">Meta</a></td><td class="desc"></td></tr>
-<tr id="row_1_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_model_base.html" target="_self">ModelBase</a></td><td class="desc"></td></tr>
-<tr id="row_1_9_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_module.html" target="_self">Module</a></td><td class="desc"></td></tr>
-<tr id="row_1_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_module_hook.html" target="_self">ModuleHook</a></td><td class="desc"></td></tr>
-<tr id="row_1_11_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_product.html" target="_self">Product</a></td><td class="desc"></td></tr>
-<tr id="row_1_12_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_user.html" target="_self">User</a></td><td class="desc"></td></tr>
-<tr id="row_2_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_exception.html" target="_self">Exception</a></td><td class="desc"></td></tr>
-<tr id="row_2_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_exception_1_1_error404.html" target="_self">Error404</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_tools.html" target="_self">Tools</a></td><td class="desc"></td></tr>
-<tr id="row_3_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_a_controller.html" target="_self">AController</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_a_module.html" target="_self">AModule</a></td><td class="desc"></td></tr>
-<tr id="row_3_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_context.html" target="_self">Context</a></td><td class="desc"></td></tr>
-<tr id="row_3_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_hook_event.html" target="_self">HookEvent</a></td><td class="desc"></td></tr>
-<tr id="row_3_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_hooks.html" target="_self">Hooks</a></td><td class="desc"></td></tr>
-<tr id="row_3_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_module_manager.html" target="_self">ModuleManager</a></td><td class="desc"></td></tr>
-<tr id="row_3_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_router.html" target="_self">Router</a></td><td class="desc"></td></tr>
-<tr id="row_4_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_test2_module.html" target="_self">Test2Module</a></td><td class="desc"></td></tr>
-<tr id="row_5_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_test_module.html" target="_self">TestModule</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_controller_1_1_error404.html" target="_self">Error404</a></td><td class="desc"></td></tr>
+<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_controller_1_1_product_controller.html" target="_self">ProductController</a></td><td class="desc"></td></tr>
+<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_entity.html" target="_self">Entity</a></td><td class="desc"></td></tr>
+<tr id="row_1_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_address.html" target="_self">Address</a></td><td class="desc"></td></tr>
+<tr id="row_1_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_admin.html" target="_self">Admin</a></td><td class="desc"></td></tr>
+<tr id="row_1_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_cart.html" target="_self">Cart</a></td><td class="desc"></td></tr>
+<tr id="row_1_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_cart_product.html" target="_self">CartProduct</a></td><td class="desc"></td></tr>
+<tr id="row_1_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_category.html" target="_self">Category</a></td><td class="desc"></td></tr>
+<tr id="row_1_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_cms.html" target="_self">Cms</a></td><td class="desc"></td></tr>
+<tr id="row_1_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_config.html" target="_self">Config</a></td><td class="desc"></td></tr>
+<tr id="row_1_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_meta.html" target="_self">Meta</a></td><td class="desc"></td></tr>
+<tr id="row_1_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_model_base.html" target="_self">ModelBase</a></td><td class="desc"></td></tr>
+<tr id="row_1_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_module.html" target="_self">Module</a></td><td class="desc"></td></tr>
+<tr id="row_1_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_module_hook.html" target="_self">ModuleHook</a></td><td class="desc"></td></tr>
+<tr id="row_1_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_product.html" target="_self">Product</a></td><td class="desc"></td></tr>
+<tr id="row_1_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_user.html" target="_self">User</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_exception.html" target="_self">Exception</a></td><td class="desc"></td></tr>
+<tr id="row_2_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_exception_1_1_error404.html" target="_self">Error404</a></td><td class="desc"></td></tr>
+<tr id="row_3_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_tools.html" target="_self">Tools</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_a_controller.html" target="_self">AController</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_a_module.html" target="_self">AModule</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_context.html" target="_self">Context</a></td><td class="desc"></td></tr>
+<tr id="row_3_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_hook_event.html" target="_self">HookEvent</a></td><td class="desc"></td></tr>
+<tr id="row_3_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_hooks.html" target="_self">Hooks</a></td><td class="desc"></td></tr>
+<tr id="row_3_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_module_manager.html" target="_self">ModuleManager</a></td><td class="desc"></td></tr>
+<tr id="row_3_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_router.html" target="_self">Router</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_test2_module.html" target="_self">Test2Module</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_test_module.html" target="_self">TestModule</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/autoload_8php.html

@@ -148,7 +148,7 @@ Functions</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/autoload_8php_source.html

@@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 1 - 1
doc/html/class_controller_1_1_category_controller.html

@@ -182,7 +182,7 @@ Additional Inherited Members</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Wed Aug 5 2015 00:58:13 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.8
 </small></address>

+ 192 - 0
doc/html/class_controller_1_1_error404.html

@@ -0,0 +1,192 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: Error404 Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_controller.html">Controller</a></li><li class="navelem"><a class="el" href="class_controller_1_1_error404.html">Error404</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Error404 Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for Error404:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_controller_1_1_error404.png" usemap="#Error404_map" alt=""/>
+  <map id="Error404_map" name="Error404_map">
+<area href="class_tools_1_1_a_controller.html" alt="AController" shape="rect" coords="0,0,77,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a7b7ea19d18501d4214fb4dcb274addea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_controller_1_1_error404.html#a7b7ea19d18501d4214fb4dcb274addea">__construct</a> ($context, $params)</td></tr>
+<tr class="separator:a7b7ea19d18501d4214fb4dcb274addea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8fa59992209e36dccb3eefb0f75531f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_controller_1_1_error404.html#af8fa59992209e36dccb3eefb0f75531f">start</a> ()</td></tr>
+<tr class="separator:af8fa59992209e36dccb3eefb0f75531f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_class_tools_1_1_a_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_tools_1_1_a_controller')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_tools_1_1_a_controller.html">AController</a></td></tr>
+<tr class="memitem:a7b7ea19d18501d4214fb4dcb274addea inherit pub_methods_class_tools_1_1_a_controller"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_controller.html#a7b7ea19d18501d4214fb4dcb274addea">__construct</a> ($context, $params)</td></tr>
+<tr class="separator:a7b7ea19d18501d4214fb4dcb274addea inherit pub_methods_class_tools_1_1_a_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8fa59992209e36dccb3eefb0f75531f inherit pub_methods_class_tools_1_1_a_controller"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_controller.html#af8fa59992209e36dccb3eefb0f75531f">start</a> ()</td></tr>
+<tr class="separator:af8fa59992209e36dccb3eefb0f75531f inherit pub_methods_class_tools_1_1_a_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_class_tools_1_1_a_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_tools_1_1_a_controller')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_tools_1_1_a_controller.html">AController</a></td></tr>
+<tr class="memitem:a21ae116e22adda72b3971dde67f4ef19 inherit pro_attribs_class_tools_1_1_a_controller"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_controller.html#a21ae116e22adda72b3971dde67f4ef19">$params</a></td></tr>
+<tr class="separator:a21ae116e22adda72b3971dde67f4ef19 inherit pro_attribs_class_tools_1_1_a_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="controllers_2_error404_8php_source.html#l00005">5</a> of file <a class="el" href="controllers_2_error404_8php_source.html">Error404.php</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a7b7ea19d18501d4214fb4dcb274addea"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__construct </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$context</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$params</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="controllers_2_error404_8php_source.html#l00007">7</a> of file <a class="el" href="controllers_2_error404_8php_source.html">Error404.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        parent::__construct($context, <a class="code" href="class_tools_1_1_a_controller.html#a21ae116e22adda72b3971dde67f4ef19">$params</a>);</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    }</div>
+<div class="ttc" id="class_tools_1_1_a_controller_html_a21ae116e22adda72b3971dde67f4ef19"><div class="ttname"><a href="class_tools_1_1_a_controller.html#a21ae116e22adda72b3971dde67f4ef19">Tools\AController\$params</a></div><div class="ttdeci">$params</div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00021">AController.php:21</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="af8fa59992209e36dccb3eefb0f75531f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">start </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="controllers_2_error404_8php_source.html#l00012">12</a> of file <a class="el" href="controllers_2_error404_8php_source.html">Error404.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="comment">//TODO throw hook Error404</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>core/controllers/<a class="el" href="controllers_2_error404_8php_source.html">Error404.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels