Sfoglia il codice sorgente

Unit test on hooks

isundil 10 anni fa
parent
commit
b104a2bba9
100 ha cambiato i file con 1203 aggiunte e 1040 eliminazioni
  1. 24 0
      core/models/ModelBase.php
  2. 2 2
      core/tools/AModule.php
  3. 1 1
      core/tools/Context.php
  4. 9 1
      core/tools/Hooks.php
  5. 22 2
      core/tools/ModuleManager.php
  6. 11 11
      doc/coverage/autoload.php.html
  7. 1 1
      doc/coverage/config.inc.php.html
  8. 1 1
      doc/coverage/controllers/CategoryController.php.html
  9. 1 1
      doc/coverage/controllers/Error404.php.html
  10. 1 1
      doc/coverage/controllers/ProductController.php.html
  11. 1 1
      doc/coverage/controllers/dashboard.html
  12. 1 1
      doc/coverage/controllers/index.html
  13. 1 1
      doc/coverage/controllers/index.php.html
  14. 26 36
      doc/coverage/dashboard.html
  15. 1 1
      doc/coverage/exceptions/dashboard.html
  16. 1 1
      doc/coverage/exceptions/index.html
  17. 1 1
      doc/coverage/exceptions/index.php.html
  18. 35 35
      doc/coverage/index.html
  19. 1 1
      doc/coverage/index.php.html
  20. 1 1
      doc/coverage/models/Address.php.html
  21. 1 1
      doc/coverage/models/Admin.php.html
  22. 1 1
      doc/coverage/models/Cart.php.html
  23. 1 1
      doc/coverage/models/CartProduct.php.html
  24. 1 1
      doc/coverage/models/Category.php.html
  25. 1 1
      doc/coverage/models/Cms.php.html
  26. 1 1
      doc/coverage/models/Config.php.html
  27. 1 1
      doc/coverage/models/Meta.php.html
  28. 144 99
      doc/coverage/models/ModelBase.php.html
  29. 1 1
      doc/coverage/models/Module.php.html
  30. 3 3
      doc/coverage/models/ModuleHook.php.html
  31. 1 1
      doc/coverage/models/Product.php.html
  32. 1 1
      doc/coverage/models/User.php.html
  33. 3 3
      doc/coverage/models/dashboard.html
  34. 17 17
      doc/coverage/models/index.html
  35. 1 1
      doc/coverage/models/index.php.html
  36. 1 1
      doc/coverage/setup/dashboard.html
  37. 1 1
      doc/coverage/setup/index.html
  38. 1 1
      doc/coverage/setup/index.php.html
  39. 1 1
      doc/coverage/tools/AController.php.html
  40. 33 33
      doc/coverage/tools/AModule.php.html
  41. 10 10
      doc/coverage/tools/Context.php.html
  42. 66 66
      doc/coverage/tools/HookEvent.php.html
  43. 137 129
      doc/coverage/tools/Hooks.php.html
  44. 207 166
      doc/coverage/tools/ModuleManager.php.html
  45. 1 9
      doc/coverage/tools/Router.php.html
  46. 18 28
      doc/coverage/tools/dashboard.html
  47. 58 58
      doc/coverage/tools/index.html
  48. 1 1
      doc/html/_2main_8php.html
  49. 3 3
      doc/html/_2main_8php_source.html
  50. 1 1
      doc/html/_a_controller_8php.html
  51. 1 1
      doc/html/_a_controller_8php_source.html
  52. 1 1
      doc/html/_a_module_8php.html
  53. 4 4
      doc/html/_a_module_8php_source.html
  54. 1 1
      doc/html/_address_8php.html
  55. 1 1
      doc/html/_address_8php_source.html
  56. 1 1
      doc/html/_admin_8php.html
  57. 1 1
      doc/html/_admin_8php_source.html
  58. 1 1
      doc/html/_cart_8php.html
  59. 1 1
      doc/html/_cart_8php_source.html
  60. 1 1
      doc/html/_cart_product_8php.html
  61. 1 1
      doc/html/_cart_product_8php_source.html
  62. 1 1
      doc/html/_category_8php.html
  63. 1 1
      doc/html/_category_8php_source.html
  64. 1 1
      doc/html/_category_controller_8php.html
  65. 1 1
      doc/html/_category_controller_8php_source.html
  66. 1 1
      doc/html/_cms_8php.html
  67. 1 1
      doc/html/_cms_8php_source.html
  68. 1 1
      doc/html/_config_8php.html
  69. 1 1
      doc/html/_config_8php_source.html
  70. 1 1
      doc/html/_context_8php.html
  71. 7 7
      doc/html/_context_8php_source.html
  72. 1 1
      doc/html/_hook_event_8php.html
  73. 1 1
      doc/html/_hook_event_8php_source.html
  74. 1 1
      doc/html/_hooks_8php.html
  75. 66 58
      doc/html/_hooks_8php_source.html
  76. 1 1
      doc/html/_meta_8php.html
  77. 1 1
      doc/html/_meta_8php_source.html
  78. 1 1
      doc/html/_model_base_8php.html
  79. 97 78
      doc/html/_model_base_8php_source.html
  80. 1 1
      doc/html/_module_8php.html
  81. 1 1
      doc/html/_module_8php_source.html
  82. 1 1
      doc/html/_module_hook_8php.html
  83. 1 1
      doc/html/_module_hook_8php_source.html
  84. 1 1
      doc/html/_module_manager_8php.html
  85. 123 107
      doc/html/_module_manager_8php_source.html
  86. 1 1
      doc/html/_product_8php.html
  87. 1 1
      doc/html/_product_8php_source.html
  88. 1 1
      doc/html/_product_controller_8php.html
  89. 1 1
      doc/html/_product_controller_8php_source.html
  90. 1 1
      doc/html/_router_8php.html
  91. 1 1
      doc/html/_router_8php_source.html
  92. 1 1
      doc/html/_user_8php.html
  93. 1 1
      doc/html/_user_8php_source.html
  94. 1 1
      doc/html/annotated.html
  95. 1 1
      doc/html/autoload_8php.html
  96. 1 1
      doc/html/autoload_8php_source.html
  97. 1 1
      doc/html/class_controller_1_1_category_controller.html
  98. 1 1
      doc/html/class_controller_1_1_error404.html
  99. 1 1
      doc/html/class_controller_1_1_product_controller.html
  100. 3 1
      doc/html/class_entity_1_1_address.html

+ 24 - 0
core/models/ModelBase.php

@@ -151,6 +151,28 @@ abstract class ModelBase
         \Tools\Hooks::trigger("onAfterEntitySave".$this->getTableName());
     }
 
+	/**
+	 * Remove entity from database
+	 * $entity->delete() then $entity->save() should save entity with a new id and the same data
+	 * @return Boolean true on success
+	**/
+	public function delete()
+	{
+		if ($this->id === false)
+			return true;
+        \Tools\Hooks::trigger("onBeforeEntityDelete");
+        \Tools\Hooks::trigger("onBeforeEntityDelete".$this->getTableName());
+		$id = (int) $this->id;
+		foreach ($this->fieldsValues as $i => $j)
+			if (!isset($this->changed[$i]))
+				$this->changed[$i] = $j;
+		if (self::$dbo->exec("DELETE FROM {$this->getTableName()} WHERE `id`={$id}") === false)
+			return false;
+        \Tools\Hooks::trigger("onAfterEntityDelete");
+        \Tools\Hooks::trigger("onAfterEntityDelete".$this->getTableName());
+		return true;
+	}
+
     public function selects($criteria = null, $orderBy = null)
     {
         $query = "SELECT * FROM {$this->getTableName()}";
@@ -217,6 +239,8 @@ abstract class ModelBase
     private function populate($data)
     {
         $this->id = FALSE;
+		if ($data === false)
+			throw new \Exception("Cannot load entity: no result found");
         foreach ($data as $i => $j)
             $this->fieldsValues[$i] = $j;
         if (isset($this->fieldsValues["id"]))

+ 2 - 2
core/tools/AModule.php

@@ -75,9 +75,9 @@ abstract class AModule
 	 * Register hook to be triggered
 	 * Can only be triggered while module setup
 	**/
-    public static function registerHook($hookName)
+    public function registerHook($hookName)
     {
-        $this->context->hooks->register($this, $hookname);
+        $this->context->hookManager->register($this, $hookName);
     }
 
 	/**

+ 1 - 1
core/tools/Context.php

@@ -95,11 +95,11 @@ class Context
 		$this->ip = $server["REMOTE_ADDR"];
         $this->hookManager = new Hooks($this);
 		$this->server = $server;
+        $this->router = new Router($this->server, $this);
     }
 
 	public function serve()
 	{
-        $this->router = new Router($this->server, $this);
 		// @codeCoverageIgnoreStart
         if (!\Entity\ModelBase::init())
         {

+ 9 - 1
core/tools/Hooks.php

@@ -37,6 +37,7 @@ class Hooks
     {
         $this->context = $context;
         $this->currentHook = array();
+		$this->hooks = array();
     }
 
     /**
@@ -50,7 +51,14 @@ class Hooks
     {
         if (!\Tools\ModuleManager::isInstalling())
             throw new \Exception("You can only register hooks while installing");
-        //TODO@2
+		if (!isset($this->hooks[$hookName]))
+			$this->hooks[$hookName] = array();
+        $this->hooks[$hookName][] = $module->entity->id;
+		$moduleHook = new \Entity\ModuleHook();
+		$moduleHook->module_id = $module->entity->id;
+		$moduleHook->hookName = $hookName;
+		$moduleHook->hookPosition = 10;
+		$moduleHook->save();
     }
 
     /**

+ 22 - 2
core/tools/ModuleManager.php

@@ -23,6 +23,11 @@ class ModuleManager
     **/
     private $modules = array();
 
+	/**
+	 * @var boolean $installing true if a module is currently installing
+	**/
+	private static $installing = false;
+
     /**
      * @var _id_{ID}
      * Get the module identified with id ID
@@ -106,10 +111,19 @@ class ModuleManager
 			return false;
 		$entity->name = $module->getName();
 		$entity->description = $module->getDescription();
-		if ($module->install() == false)
-			return false;
 		$entity->save();
 		$module->setEntity($entity);
+		self::$installing = true;
+		if ($module->install() == false)
+		{
+			self::$installing = false;
+			$hooks = \Entity\ModuleHook::getModules($entity->id);
+			foreach ($hooks as $i)
+				$i->delete();
+			$entity->delete();
+			return false;
+		}
+		self::$installing = false;
 		return $module;
 	}
 
@@ -147,6 +161,12 @@ class ModuleManager
         return FALSE;
     }
 
+	/**
+	 * @return true if a module is currently installing
+	**/
+	public static function isInstalling()
+	{ return self::$installing; }
+
 	/**
 	 * Getter
 	**/

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

@@ -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;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 class="covered-by-large-tests popin" data-title="2 tests cover line 10" 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="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="2 tests cover line 11" 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="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="2 tests cover line 12" 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="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="2 tests cover line 13" 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="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;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="covered-by-large-tests popin" data-title="2 tests cover line 16" 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="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="covered-by-large-tests popin" data-title="2 tests cover line 18" 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="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="2 tests cover line 19" 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="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;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="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;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="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="2 tests cover line 26" 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="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="2 tests cover line 27" 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="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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

File diff suppressed because it is too large
+ 26 - 36
doc/coverage/dashboard.html


+ 1 - 1
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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 UTC 2015.</small>
     </p>
    </footer>
   </div>

+ 1 - 1
doc/coverage/exceptions/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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 35 - 35
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="81.76" aria-valuemin="0" aria-valuemax="100" style="width: 81.76%">
-           <span class="sr-only">81.76% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="87.29" aria-valuemin="0" aria-valuemax="100" style="width: 87.29%">
+           <span class="sr-only">87.29% covered (warning)</span>
          </div>
        </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 small"><div align="right">87.29%</div></td>
+      <td class="warning small"><div align="right">474&nbsp;/&nbsp;543</div></td>
       <td class="warning big">       <div class="progress">
-         <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 class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="77.38" aria-valuemin="0" aria-valuemax="100" style="width: 77.38%">
+           <span class="sr-only">77.38% covered (warning)</span>
          </div>
        </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 small"><div align="right">77.38%</div></td>
+      <td class="warning small"><div align="right">65&nbsp;/&nbsp;84</div></td>
       <td class="warning big">       <div class="progress">
-         <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 class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="56.52" aria-valuemin="0" aria-valuemax="100" style="width: 56.52%">
+           <span class="sr-only">56.52% covered (warning)</span>
          </div>
        </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>
+      <td class="warning small"><div align="right">56.52%</div></td>
+      <td class="warning small"><div align="right">13&nbsp;/&nbsp;23</div></td>
      </tr>
 
      <tr>
@@ -112,21 +112,21 @@
      <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="87.55" aria-valuemin="0" aria-valuemax="100" style="width: 87.55%">
-           <span class="sr-only">87.55% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="88.19" aria-valuemin="0" aria-valuemax="100" style="width: 88.19%">
+           <span class="sr-only">88.19% covered (warning)</span>
          </div>
        </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 small"><div align="right">88.19%</div></td>
+      <td class="warning small"><div align="right">254&nbsp;/&nbsp;288</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>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="82.05" aria-valuemin="0" aria-valuemax="100" style="width: 82.05%">
+           <span class="sr-only">82.05% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">81.58%</div></td>
-      <td class="warning small"><div align="right">31&nbsp;/&nbsp;38</div></td>
+      <td class="warning small"><div align="right">82.05%</div></td>
+      <td class="warning small"><div align="right">32&nbsp;/&nbsp;39</div></td>
       <td class="warning big">       <div class="progress">
          <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="76.92" aria-valuemin="0" aria-valuemax="100" style="width: 76.92%">
            <span class="sr-only">76.92% covered (warning)</span>
@@ -151,31 +151,31 @@
      </tr>
 
      <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="77.93" aria-valuemin="0" aria-valuemax="100" style="width: 77.93%">
-           <span class="sr-only">77.93% covered (warning)</span>
+      <td class="success"><span class="glyphicon glyphicon-folder-open"></span> <a href="tools/index.html">tools</a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="90.04" aria-valuemin="0" aria-valuemax="100" style="width: 90.04%">
+           <span class="sr-only">90.04% covered (success)</span>
          </div>
        </div>
 </td>
-      <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="success small"><div align="right">90.04%</div></td>
+      <td class="success small"><div align="right">208&nbsp;/&nbsp;231</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 class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="82.05" aria-valuemin="0" aria-valuemax="100" style="width: 82.05%">
+           <span class="sr-only">82.05% covered (warning)</span>
          </div>
        </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="warning small"><div align="right">82.05%</div></td>
+      <td class="warning small"><div align="right">32&nbsp;/&nbsp;39</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>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="42.86" aria-valuemin="0" aria-valuemax="100" style="width: 42.86%">
+           <span class="sr-only">42.86% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">28.57%</div></td>
-      <td class="danger small"><div align="right">2&nbsp;/&nbsp;7</div></td>
+      <td class="danger small"><div align="right">42.86%</div></td>
+      <td class="danger small"><div align="right">3&nbsp;/&nbsp;7</div></td>
      </tr>
 
      <tr>
@@ -234,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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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/Config.php.html

@@ -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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 144 - 99
doc/coverage/models/ModelBase.php.html

@@ -52,22 +52,22 @@
       <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="75.00" aria-valuemin="0" aria-valuemax="100" style="width: 75.00%">
-           <span class="sr-only">75.00% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="76.92" aria-valuemin="0" aria-valuemax="100" style="width: 76.92%">
+           <span class="sr-only">76.92% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">75.00%</div></td>
-      <td class="warning small"><div align="right">9&nbsp;/&nbsp;12</div></td>
+      <td class="warning small"><div align="right">76.92%</div></td>
+      <td class="warning small"><div align="right">10&nbsp;/&nbsp;13</div></td>
       <td class="warning 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="94.16" aria-valuemin="0" aria-valuemax="100" style="width: 94.16%">
-           <span class="sr-only">94.16% covered (success)</span>
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="94.74" aria-valuemin="0" aria-valuemax="100" style="width: 94.74%">
+           <span class="sr-only">94.74% covered (success)</span>
          </div>
        </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="success small"><div align="right">94.74%</div></td>
+      <td class="success small"><div align="right">144&nbsp;/&nbsp;152</div></td>
      </tr>
 
      <tr>
@@ -81,22 +81,22 @@
       <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="76.92" aria-valuemin="0" aria-valuemax="100" style="width: 76.92%">
-           <span class="sr-only">76.92% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="78.57" aria-valuemin="0" aria-valuemax="100" style="width: 78.57%">
+           <span class="sr-only">78.57% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">76.92%</div></td>
-      <td class="warning small"><div align="right">10&nbsp;/&nbsp;13</div></td>
-      <td class="warning small">53.56</td>
+      <td class="warning small"><div align="right">78.57%</div></td>
+      <td class="warning small"><div align="right">11&nbsp;/&nbsp;14</div></td>
+      <td class="warning small">59.51</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 class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="94.74" aria-valuemin="0" aria-valuemax="100" style="width: 94.74%">
+           <span class="sr-only">94.74% covered (success)</span>
          </div>
        </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="success small"><div align="right">94.74%</div></td>
+      <td class="success small"><div align="right">144&nbsp;/&nbsp;152</div></td>
      </tr>
 
      <tr>
@@ -305,7 +305,28 @@
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#154"><abbr title="selects($criteria = null, $orderBy = null)">selects</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#159"><abbr title="delete()">delete</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">5</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">13&nbsp;/&nbsp;13</div></td>
+     </tr>
+
+     <tr>
+      <td class="danger" colspan="4">&nbsp;<a href="#176"><abbr title="selects($criteria = null, $orderBy = null)">selects</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>
@@ -326,7 +347,7 @@
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#208"><abbr title="selectById($id)">selectById</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#230"><abbr title="selectById($id)">selectById</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>
@@ -347,7 +368,7 @@
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#217"><abbr title="populate($data)">populate</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#239"><abbr title="populate($data)">populate</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>
@@ -356,7 +377,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">3</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>
@@ -364,7 +385,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>
 
 
@@ -435,7 +456,7 @@
      <tr class="covered-by-large-tests popin" data-title="6 tests cover line 61" 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="61"></a><a href="#61">61</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">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$tables</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="62"></a><a href="#62">62</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="6 tests cover line 63" 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="63"></a><a href="#63">63</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">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">&quot;Entity\\&quot;</span><span class="keyword">.</span><span class="default">$i</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="9 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::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::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;ModelBaseTest::testEmptyTable&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="64"></a><a href="#64">64</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">$table</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">$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="6 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;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="64"></a><a href="#64">64</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">$table</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">$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="6 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;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="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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$table</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">true</span><span class="keyword">)</span></td></tr>
      <tr class="covered-by-large-tests popin" data-title="5 tests cover line 66" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="66"></a><a href="#66">66</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;&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">{</span><span class="string">$i</span><span class="keyword">}</span><span class="string">:&nbsp;Cannot&nbsp;table&nbsp;setup&nbsp;failure</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
      <tr class="covered-by-large-tests popin" data-title="5 tests cover line 67" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="67"></a><a href="#67">67</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>
@@ -443,7 +464,7 @@
      <tr class="covered-by-large-tests popin" data-title="6 tests cover line 69" 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="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="keyword">catch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">\</span><span class="default">Exception</span><span class="default">&nbsp;</span><span class="default">$e</span><span class="keyword">)</span></td></tr>
      <tr><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">{</span></td></tr>
      <tr class="covered-by-large-tests popin" data-title="1 test covers line 71" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&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">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">rollBack</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 72" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">error_log</span><span class="keyword">(</span><span class="default">$e</span><span class="default">-&gt;</span><span class="default">getMessage</span><span class="keyword">(</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 72" 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::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;ModelBaseTest::testInstallFailure&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="72"></a><a href="#72">72</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">error_log</span><span class="keyword">(</span><span class="default">$e</span><span class="default">-&gt;</span><span class="default">getMessage</span><span class="keyword">(</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 73" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&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="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">}</span></td></tr>
      <tr class="covered-by-large-tests popin" data-title="5 tests cover line 75" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="75"></a><a href="#75">75</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">$dbo</span><span class="default">-&gt;</span><span class="default">commit</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
@@ -525,80 +546,104 @@
      <tr class="covered-by-large-tests popin" data-title="5 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::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;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="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="default">\</span><span class="default">Tools</span><span class="default">\</span><span class="default">Hooks</span><span class="default">::</span><span class="default">trigger</span><span class="keyword">(</span><span class="default">&quot;onAfterEntitySave&quot;</span><span class="keyword">.</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getTableName</span><span class="keyword">(</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 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::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;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="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="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">selects</span><span class="keyword">(</span><span class="default">$criteria</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">$orderBy</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="155"></a><a href="#155">155</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 156" 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="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="default">$query</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">SELECT&nbsp;*&nbsp;FROM&nbsp;</span><span class="string">{</span><span class="string">$this</span><span class="string">-&gt;</span><span class="string">getTableName</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">}</span><span class="string">&quot;</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"></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 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;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="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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="keyword">empty</span><span class="keyword">(</span><span class="default">$criteria</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 159" 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="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="4 tests cover line 160" 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="160"></a><a href="#160">160</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">$subQuery</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 161" 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="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">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$criteria</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$j</span><span class="keyword">)</span></td></tr>
-     <tr><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 163" 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="163"></a><a href="#163">163</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$j</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="4 tests cover line 164" 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="164"></a><a href="#164">164</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$subQuery</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="string">&quot;</span><span class="string">`</span><span class="string">{</span><span class="string">$i</span><span class="keyword">}</span><span class="string">`&nbsp;IS&nbsp;NULL</span><span class="string">&quot;</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 165" 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="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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span><span class="default">&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">is_array</span><span class="keyword">(</span><span class="default">$j</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 166" 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="166"></a><a href="#166">166</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">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 167" 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="167"></a><a href="#167">167</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$inArray</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="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;ModuleManagerTest::testInstalled&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;&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">$j</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$k</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;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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$inArray</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">$dbo</span><span class="default">-&gt;</span><span class="default">quote</span><span class="keyword">(</span><span class="default">$k</span><span class="keyword">)</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;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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$subQuery</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="string">&quot;</span><span class="string">`</span><span class="string">{</span><span class="string">$i</span><span class="keyword">}</span><span class="string">`&nbsp;IN&nbsp;(</span><span class="string">&quot;</span><span class="keyword">.</span><span class="default">implode</span><span class="keyword">(</span><span class="default">&quot;,&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$inArray</span><span class="keyword">)</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="1 test covers line 171" 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="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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><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">else</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 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;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="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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$subQuery</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="string">&quot;</span><span class="string">`</span><span class="string">{</span><span class="string">$i</span><span class="keyword">}</span><span class="string">`=</span><span class="string">&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">quote</span><span class="keyword">(</span><span class="default">$j</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 174" 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="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;</span><span class="keyword">}</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 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;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="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">$query</span><span class="default">&nbsp;</span><span class="default">.=</span><span class="default">&nbsp;</span><span class="default">&quot;&nbsp;WHERE&nbsp;&quot;</span><span class="keyword">.</span><span class="default">implode</span><span class="keyword">(</span><span class="default">&quot;&nbsp;AND&nbsp;&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$subQuery</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 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;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="176"></a><a href="#176">176</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 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;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="177"></a><a href="#177">177</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="keyword">empty</span><span class="keyword">(</span><span class="default">$orderBy</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 178" 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="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="4 tests cover line 179" 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="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;</span><span class="default">$_orderBy</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 180" 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="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">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$orderBy</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$j</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"><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 182" 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="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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">is_numeric</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="4 tests cover line 183" 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="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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$_orderBy</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="string">&quot;</span><span class="string">`</span><span class="string">{</span><span class="string">$j</span><span class="keyword">}</span><span class="string">`&nbsp;ASC</span><span class="string">&quot;</span><span class="keyword">;</span></td></tr>
-     <tr><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span></td></tr>
-     <tr><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$orderType</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">&quot;ASC&quot;</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><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;&nbsp;&nbsp;&nbsp;&nbsp;&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">strtoupper</span><span class="keyword">(</span><span class="default">$j</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">&quot;DESC&quot;</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$orderType</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">&quot;DESC&quot;</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$_orderBy</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="string">&quot;</span><span class="string">`</span><span class="string">{</span><span class="string">$i</span><span class="keyword">}</span><span class="string">`&nbsp;</span><span class="string">{</span><span class="string">$orderType</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">;</span></td></tr>
-     <tr><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;&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 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;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="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="keyword">}</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 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;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="192"></a><a href="#192">192</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">$query</span><span class="default">&nbsp;</span><span class="default">.=</span><span class="default">&nbsp;</span><span class="default">&quot;&nbsp;ORDER&nbsp;BY&nbsp;&quot;</span><span class="keyword">.</span><span class="default">implode</span><span class="keyword">(</span><span class="default">&quot;,&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$_orderBy</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 193" 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="193"></a><a href="#193">193</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 194" 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="194"></a><a href="#194">194</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">query</span><span class="keyword">(</span><span class="default">$query</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">PDO</span><span class="default">::</span><span class="default">FETCH_ASSOC</span><span class="keyword">)</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="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
-     <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;&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">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <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="default">$resultObj</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 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;</span><span class="default">$className</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">get_class</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 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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</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="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="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 201" 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="201"></a><a href="#201">201</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">$iObj</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="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 202" 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="202"></a><a href="#202">202</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">$iObj</span><span class="default">-&gt;</span><span class="default">populate</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="3 tests cover line 203" 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="203"></a><a href="#203">203</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">$resultObj</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">$iObj</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 204" 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="204"></a><a href="#204">204</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 205" 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="205"></a><a href="#205">205</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">$resultObj</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><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><td><div align="right"><a name="207"></a><a href="#207">207</a></div></td><td class="codeLine"></td></tr>
-     <tr><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">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">selectById</span><span class="keyword">(</span><span class="default">$id</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"><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 210" 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;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="210"></a><a href="#210">210</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$query</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">SELECT&nbsp;*&nbsp;FROM&nbsp;</span><span class="string">{</span><span class="string">$this</span><span class="string">-&gt;</span><span class="string">getTableName</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">}</span><span class="string">&nbsp;WHERE&nbsp;id=</span><span class="string">&quot;</span><span class="keyword">.</span><span class="default">(int)</span><span class="default">$id</span><span class="keyword">.</span><span class="default">&quot;&nbsp;LIMIT&nbsp;1&quot;</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 211" 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;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="211"></a><a href="#211">211</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">query</span><span class="keyword">(</span><span class="default">$query</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">PDO</span><span class="default">::</span><span class="default">FETCH_ASSOC</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 212" 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;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="212"></a><a href="#212">212</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="default">&nbsp;</span><span class="default">||</span><span class="default">&nbsp;</span><span class="keyword">empty</span><span class="keyword">(</span><span class="default">$result</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 213" 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;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="213"></a><a href="#213">213</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;Cannot&nbsp;fetch&nbsp;data:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 214" 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;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="214"></a><a href="#214">214</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">populate</span><span class="keyword">(</span><span class="default">$result</span><span class="default">-&gt;</span><span class="default">fetch</span><span class="keyword">(</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 215" 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;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="215"></a><a href="#215">215</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="216"></a><a href="#216">216</a></div></td><td class="codeLine"></td></tr>
-     <tr><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;</span><span class="keyword">private</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">populate</span><span class="keyword">(</span><span class="default">$data</span><span class="keyword">)</span></td></tr>
-     <tr><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 class="covered-by-large-tests popin" data-title="6 tests cover line 219" 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;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="219"></a><a href="#219">219</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">id</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="6 tests cover line 220" 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;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="220"></a><a href="#220">220</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">$data</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$j</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 221" 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;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="221"></a><a href="#221">221</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">fieldsValues</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$j</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 222" 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;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="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">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">fieldsValues</span><span class="keyword">[</span><span class="default">&quot;id&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="6 tests cover line 223" 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;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="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="default">$this</span><span class="default">-&gt;</span><span class="default">id</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">$this</span><span class="default">-&gt;</span><span class="default">fieldsValues</span><span class="keyword">[</span><span class="default">&quot;id&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 224" 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;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="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">changed</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 225" 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;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="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"><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="227"></a><a href="#227">227</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;Remove&nbsp;entity&nbsp;from&nbsp;database</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;$entity-&gt;delete()&nbsp;then&nbsp;$entity-&gt;save()&nbsp;should&nbsp;save&nbsp;entity&nbsp;with&nbsp;a&nbsp;new&nbsp;id&nbsp;and&nbsp;the&nbsp;same&nbsp;data</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;@return&nbsp;Boolean&nbsp;true&nbsp;on&nbsp;success</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;**/</span></td></tr>
+     <tr><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">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">delete</span><span class="keyword">(</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"><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 161" 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="161"></a><a href="#161">161</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">id</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 162" 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="162"></a><a href="#162">162</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">true</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;ModuleManagerTest::testInstall&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">\</span><span class="default">Tools</span><span class="default">\</span><span class="default">Hooks</span><span class="default">::</span><span class="default">trigger</span><span class="keyword">(</span><span class="default">&quot;onBeforeEntityDelete&quot;</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;ModuleManagerTest::testInstall&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="default">\</span><span class="default">Tools</span><span class="default">\</span><span class="default">Hooks</span><span class="default">::</span><span class="default">trigger</span><span class="keyword">(</span><span class="default">&quot;onBeforeEntityDelete&quot;</span><span class="keyword">.</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getTableName</span><span class="keyword">(</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 165" 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="165"></a><a href="#165">165</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$id</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">$this</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 166" 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="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">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">fieldsValues</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$j</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 167" 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="167"></a><a href="#167">167</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">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">changed</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 168" 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="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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">changed</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$j</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;ModuleManagerTest::testInstall&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="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">DELETE&nbsp;FROM&nbsp;</span><span class="string">{</span><span class="string">$this</span><span class="string">-&gt;</span><span class="string">getTableName</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">}</span><span class="string">&nbsp;WHERE&nbsp;`id`=</span><span class="string">{</span><span class="string">$id</span><span class="keyword">}</span><span class="string">&quot;</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 170" 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="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;</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 171" 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="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="default">\</span><span class="default">Tools</span><span class="default">\</span><span class="default">Hooks</span><span class="default">::</span><span class="default">trigger</span><span class="keyword">(</span><span class="default">&quot;onAfterEntityDelete&quot;</span><span class="keyword">)</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;ModuleManagerTest::testInstall&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;</span><span class="default">\</span><span class="default">Tools</span><span class="default">\</span><span class="default">Hooks</span><span class="default">::</span><span class="default">trigger</span><span class="keyword">(</span><span class="default">&quot;onAfterEntityDelete&quot;</span><span class="keyword">.</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getTableName</span><span class="keyword">(</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 173" 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="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">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="174"></a><a href="#174">174</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="175"></a><a href="#175">175</a></div></td><td class="codeLine"></td></tr>
+     <tr><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;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">selects</span><span class="keyword">(</span><span class="default">$criteria</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">$orderBy</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="177"></a><a href="#177">177</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 178" 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="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="default">$query</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">SELECT&nbsp;*&nbsp;FROM&nbsp;</span><span class="string">{</span><span class="string">$this</span><span class="string">-&gt;</span><span class="string">getTableName</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="179"></a><a href="#179">179</a></div></td><td class="codeLine"></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 180" 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="180"></a><a href="#180">180</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="keyword">empty</span><span class="keyword">(</span><span class="default">$criteria</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 181" 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="181"></a><a href="#181">181</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="5 tests cover line 182" 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="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="default">$subQuery</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="5 tests cover line 183" 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="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;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$criteria</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$j</span><span class="keyword">)</span></td></tr>
+     <tr><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="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 185" 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="185"></a><a href="#185">185</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$j</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="5 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::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="186"></a><a href="#186">186</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$subQuery</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="string">&quot;</span><span class="string">`</span><span class="string">{</span><span class="string">$i</span><span class="keyword">}</span><span class="string">`&nbsp;IS&nbsp;NULL</span><span class="string">&quot;</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 187" 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="187"></a><a href="#187">187</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">else</span><span class="default">&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">is_array</span><span class="keyword">(</span><span class="default">$j</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 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;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="188"></a><a href="#188">188</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">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 189" 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="189"></a><a href="#189">189</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$inArray</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="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 190" 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="190"></a><a href="#190">190</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$j</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$k</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 191" 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="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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$inArray</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">$dbo</span><span class="default">-&gt;</span><span class="default">quote</span><span class="keyword">(</span><span class="default">$k</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 192" 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="192"></a><a href="#192">192</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$subQuery</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="string">&quot;</span><span class="string">`</span><span class="string">{</span><span class="string">$i</span><span class="keyword">}</span><span class="string">`&nbsp;IN&nbsp;(</span><span class="string">&quot;</span><span class="keyword">.</span><span class="default">implode</span><span class="keyword">(</span><span class="default">&quot;,&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$inArray</span><span class="keyword">)</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="1 test covers line 193" 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="193"></a><a href="#193">193</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">}</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 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::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="195"></a><a href="#195">195</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$subQuery</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="string">&quot;</span><span class="string">`</span><span class="string">{</span><span class="string">$i</span><span class="keyword">}</span><span class="string">`=</span><span class="string">&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">quote</span><span class="keyword">(</span><span class="default">$j</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 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::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="196"></a><a href="#196">196</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="5 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::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="197"></a><a href="#197">197</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">$query</span><span class="default">&nbsp;</span><span class="default">.=</span><span class="default">&nbsp;</span><span class="default">&quot;&nbsp;WHERE&nbsp;&quot;</span><span class="keyword">.</span><span class="default">implode</span><span class="keyword">(</span><span class="default">&quot;&nbsp;AND&nbsp;&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$subQuery</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 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::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="198"></a><a href="#198">198</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="5 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::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="199"></a><a href="#199">199</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="keyword">empty</span><span class="keyword">(</span><span class="default">$orderBy</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 200" 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="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="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 201" 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="201"></a><a href="#201">201</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">$_orderBy</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="5 tests cover line 202" 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="202"></a><a href="#202">202</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">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$orderBy</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$j</span><span class="keyword">)</span></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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 204" 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="204"></a><a href="#204">204</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">is_numeric</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="5 tests cover line 205" 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="205"></a><a href="#205">205</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$_orderBy</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="string">&quot;</span><span class="string">`</span><span class="string">{</span><span class="string">$j</span><span class="keyword">}</span><span class="string">`&nbsp;ASC</span><span class="string">&quot;</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;&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="207"></a><a href="#207">207</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">{</span></td></tr>
+     <tr class="danger"><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$orderType</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">&quot;ASC&quot;</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="209"></a><a href="#209">209</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">strtoupper</span><span class="keyword">(</span><span class="default">$j</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">&quot;DESC&quot;</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="danger"><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$orderType</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">&quot;DESC&quot;</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="211"></a><a href="#211">211</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$_orderBy</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="string">&quot;</span><span class="string">`</span><span class="string">{</span><span class="string">$i</span><span class="keyword">}</span><span class="string">`&nbsp;</span><span class="string">{</span><span class="string">$orderType</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="212"></a><a href="#212">212</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">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 213" 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="213"></a><a href="#213">213</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="5 tests cover line 214" 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="214"></a><a href="#214">214</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">$query</span><span class="default">&nbsp;</span><span class="default">.=</span><span class="default">&nbsp;</span><span class="default">&quot;&nbsp;ORDER&nbsp;BY&nbsp;&quot;</span><span class="keyword">.</span><span class="default">implode</span><span class="keyword">(</span><span class="default">&quot;,&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$_orderBy</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 215" 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="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">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 216" 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="216"></a><a href="#216">216</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">query</span><span class="keyword">(</span><span class="default">$query</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">PDO</span><span class="default">::</span><span class="default">FETCH_ASSOC</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 217" 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="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="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 218" 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="218"></a><a href="#218">218</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">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 219" 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="219"></a><a href="#219">219</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$resultObj</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="5 tests cover line 220" 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="220"></a><a href="#220">220</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$className</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">get_class</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="5 tests cover line 221" 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="221"></a><a href="#221">221</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">$result</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="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">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 223" 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="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="default">$iObj</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="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 224" 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="224"></a><a href="#224">224</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">$iObj</span><span class="default">-&gt;</span><span class="default">populate</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="3 tests cover line 225" 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="225"></a><a href="#225">225</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">$resultObj</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">$iObj</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 226" 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="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="5 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;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="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">return</span><span class="default">&nbsp;</span><span class="default">$resultObj</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><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;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="229"></a><a href="#229">229</a></div></td><td class="codeLine"></td></tr>
+     <tr><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;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">selectById</span><span class="keyword">(</span><span class="default">$id</span><span class="keyword">)</span></td></tr>
+     <tr><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;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 232" 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;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="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="default">$query</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">SELECT&nbsp;*&nbsp;FROM&nbsp;</span><span class="string">{</span><span class="string">$this</span><span class="string">-&gt;</span><span class="string">getTableName</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">}</span><span class="string">&nbsp;WHERE&nbsp;id=</span><span class="string">&quot;</span><span class="keyword">.</span><span class="default">(int)</span><span class="default">$id</span><span class="keyword">.</span><span class="default">&quot;&nbsp;LIMIT&nbsp;1&quot;</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 233" 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;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="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="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">query</span><span class="keyword">(</span><span class="default">$query</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">PDO</span><span class="default">::</span><span class="default">FETCH_ASSOC</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 234" 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;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="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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="default">&nbsp;</span><span class="default">||</span><span class="default">&nbsp;</span><span class="keyword">empty</span><span class="keyword">(</span><span class="default">$result</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 235" 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;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="235"></a><a href="#235">235</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;Cannot&nbsp;fetch&nbsp;data:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 236" 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;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="236"></a><a href="#236">236</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">populate</span><span class="keyword">(</span><span class="default">$result</span><span class="default">-&gt;</span><span class="default">fetch</span><span class="keyword">(</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 237" 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;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="237"></a><a href="#237">237</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="238"></a><a href="#238">238</a></div></td><td class="codeLine"></td></tr>
+     <tr><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;</span><span class="keyword">private</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">populate</span><span class="keyword">(</span><span class="default">$data</span><span class="keyword">)</span></td></tr>
+     <tr><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;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 241" 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;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="241"></a><a href="#241">241</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">id</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="6 tests cover line 242" 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;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="242"></a><a href="#242">242</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">$data</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="6 tests cover line 243" 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;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="243"></a><a href="#243">243</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;Cannot&nbsp;load&nbsp;entity:&nbsp;no&nbsp;result&nbsp;found&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 244" 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;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="244"></a><a href="#244">244</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">$data</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$j</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 245" 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;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="245"></a><a href="#245">245</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">fieldsValues</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$j</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 246" 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;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="246"></a><a href="#246">246</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">fieldsValues</span><span class="keyword">[</span><span class="default">&quot;id&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="6 tests cover line 247" 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;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="247"></a><a href="#247">247</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">id</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">$this</span><span class="default">-&gt;</span><span class="default">fieldsValues</span><span class="keyword">[</span><span class="default">&quot;id&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 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;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="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="default">$this</span><span class="default">-&gt;</span><span class="default">changed</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 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;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="249"></a><a href="#249">249</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="250"></a><a href="#250">250</a></div></td><td class="codeLine"><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"></td></tr>
 
     </tbody>
    </table>
@@ -611,7 +656,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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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/Module.php.html

@@ -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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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="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="covered-by-large-tests popin" data-title="5 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::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="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="5 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::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="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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

File diff suppressed because it is too large
+ 3 - 3
doc/coverage/models/dashboard.html


+ 17 - 17
doc/coverage/models/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="87.55" aria-valuemin="0" aria-valuemax="100" style="width: 87.55%">
-           <span class="sr-only">87.55% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="88.19" aria-valuemin="0" aria-valuemax="100" style="width: 88.19%">
+           <span class="sr-only">88.19% covered (warning)</span>
          </div>
        </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 small"><div align="right">88.19%</div></td>
+      <td class="warning small"><div align="right">254&nbsp;/&nbsp;288</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>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="82.05" aria-valuemin="0" aria-valuemax="100" style="width: 82.05%">
+           <span class="sr-only">82.05% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">81.58%</div></td>
-      <td class="warning small"><div align="right">31&nbsp;/&nbsp;38</div></td>
+      <td class="warning small"><div align="right">82.05%</div></td>
+      <td class="warning small"><div align="right">32&nbsp;/&nbsp;39</div></td>
       <td class="warning big">       <div class="progress">
          <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="76.92" aria-valuemin="0" aria-valuemax="100" style="width: 76.92%">
            <span class="sr-only">76.92% covered (warning)</span>
@@ -296,21 +296,21 @@
      <tr>
       <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 class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="94.74" aria-valuemin="0" aria-valuemax="100" style="width: 94.74%">
+           <span class="sr-only">94.74% covered (success)</span>
          </div>
        </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="success small"><div align="right">94.74%</div></td>
+      <td class="success small"><div align="right">144&nbsp;/&nbsp;152</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>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="76.92" aria-valuemin="0" aria-valuemax="100" style="width: 76.92%">
+           <span class="sr-only">76.92% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">75.00%</div></td>
-      <td class="warning small"><div align="right">9&nbsp;/&nbsp;12</div></td>
+      <td class="warning small"><div align="right">76.92%</div></td>
+      <td class="warning small"><div align="right">10&nbsp;/&nbsp;13</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>
@@ -458,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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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/AController.php.html

@@ -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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 33 - 33
doc/coverage/tools/AModule.php.html

@@ -52,22 +52,22 @@
       <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="57.14" aria-valuemin="0" aria-valuemax="100" style="width: 57.14%">
-           <span class="sr-only">57.14% covered (warning)</span>
+         <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="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"><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="71.43" aria-valuemin="0" aria-valuemax="100" style="width: 71.43%">
-           <span class="sr-only">71.43% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="85.71" aria-valuemin="0" aria-valuemax="100" style="width: 85.71%">
+           <span class="sr-only">85.71% covered (warning)</span>
          </div>
        </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>
+      <td class="warning small"><div align="right">85.71%</div></td>
+      <td class="warning small"><div align="right">12&nbsp;/&nbsp;14</div></td>
      </tr>
 
      <tr>
@@ -81,22 +81,22 @@
       <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="70.00" aria-valuemin="0" aria-valuemax="100" style="width: 70.00%">
-           <span class="sr-only">70.00% covered (warning)</span>
+         <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="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 small"><div align="right">80.00%</div></td>
+      <td class="warning small"><div align="right">8&nbsp;/&nbsp;10</div></td>
+      <td class="warning small">14.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 class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="85.71" aria-valuemin="0" aria-valuemax="100" style="width: 85.71%">
+           <span class="sr-only">85.71% covered (warning)</span>
          </div>
        </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>
+      <td class="warning small"><div align="right">85.71%</div></td>
+      <td class="warning small"><div align="right">12&nbsp;/&nbsp;14</div></td>
      </tr>
 
      <tr>
@@ -211,24 +211,24 @@
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#78"><abbr title="registerHook($hookName)">registerHook</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="#78"><abbr title="registerHook($hookName)">registerHook</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">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>
+      <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="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;2</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
      </tr>
 
      <tr>
@@ -376,10 +376,10 @@
      <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>
      <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;Can&nbsp;only&nbsp;be&nbsp;triggered&nbsp;while&nbsp;module&nbsp;setup</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"><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">registerHook</span><span class="keyword">(</span><span class="default">$hookName</span><span class="keyword">)</span></td></tr>
+     <tr><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;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">registerHook</span><span class="keyword">(</span><span class="default">$hookName</span><span class="keyword">)</span></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="keyword">{</span></td></tr>
-     <tr class="danger"><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">context</span><span class="default">-&gt;</span><span class="default">hooks</span><span class="default">-&gt;</span><span class="default">register</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$hookname</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <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 class="covered-by-large-tests popin" data-title="1 test covers line 80" 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="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">context</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="default">-&gt;</span><span class="default">register</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$hookName</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 81" 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="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;@return&nbsp;string&nbsp;module&nbsp;name</span></td></tr>
@@ -421,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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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/Context.php.html

@@ -117,11 +117,11 @@
        </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">8&nbsp;/&nbsp;8</div></td>
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#100"><abbr title="serve()">serve</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#101"><abbr title="serve()">serve</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>
@@ -138,7 +138,7 @@
        </div>
 </td>
       <td class="success small"><div align="right">100.00%</div></td>
-      <td class="success small"><div align="right">10&nbsp;/&nbsp;10</div></td>
+      <td class="success small"><div align="right">9&nbsp;/&nbsp;9</div></td>
      </tr>
 
      <tr>
@@ -306,11 +306,11 @@
      <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="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 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;&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="8 tests cover line 99" 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="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="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="102"></a><a href="#102">102</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="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>
@@ -344,7 +344,7 @@
      <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="10 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::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="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>
@@ -381,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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

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

@@ -42,103 +42,103 @@
     </thead>
     <tbody>
      <tr>
-      <td class="danger">Total</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">Total</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 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 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;2</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="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</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%">
+           <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">7&nbsp;/&nbsp;7</div></td>
      </tr>
 
      <tr>
-      <td class="danger">HookEvent</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">HookEvent</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 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 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;2</div></td>
-      <td class="danger small">20</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">2&nbsp;/&nbsp;2</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="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">7&nbsp;/&nbsp;7</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#35"><abbr title="__construct($hookName, $context, $params)">__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="#35"><abbr title="__construct($hookName, $context, $params)">__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">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>
+      <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="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;4</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="danger" colspan="4">&nbsp;<a href="#45"><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>
+      <td class="success" colspan="4">&nbsp;<a href="#45"><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="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;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>
 
 
@@ -182,10 +182,10 @@
      <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></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="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">$hookName</span><span class="keyword">,</span><span class="default">&nbsp;</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="36"></a><a href="#36">36</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="37"></a><a href="#37">37</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="danger"><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hookName</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$hookName</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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="danger"><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="1 test covers line 37" 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="37"></a><a href="#37">37</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="1 test covers line 38" 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="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">hookName</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$hookName</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 39" 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="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">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="1 test covers line 40" 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="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;Getter</span></td></tr>
@@ -194,10 +194,10 @@
      <tr><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;</span><span class="keyword">{</span></td></tr>
      <tr><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;</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="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="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;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;hookName&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">hookName</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="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">case</span><span class="default">&nbsp;</span><span class="default">&quot;params&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">params</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 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;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;hookName&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">hookName</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 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">case</span><span class="default">&nbsp;</span><span class="default">&quot;params&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">params</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="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">}</span></td></tr>
-     <tr class="danger"><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;</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="covered-by-large-tests popin" data-title="1 test covers line 52" 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="52"></a><a href="#52">52</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="53"></a><a href="#53">53</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="54"></a><a href="#54">54</a></div></td><td class="codeLine"><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"></td></tr>
@@ -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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 137 - 129
doc/coverage/tools/Hooks.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="33.33" aria-valuemin="0" aria-valuemax="100" style="width: 33.33%">
-           <span class="sr-only">33.33% covered (danger)</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="danger small"><div align="right">33.33%</div></td>
-      <td class="danger small"><div align="right">2&nbsp;/&nbsp;6</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="30.00" aria-valuemin="0" aria-valuemax="100" style="width: 30.00%">
-           <span class="sr-only">30.00% covered (danger)</span>
+      <td class="warning small"><div align="right">66.67%</div></td>
+      <td class="warning small"><div align="right">4&nbsp;/&nbsp;6</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="84.62" aria-valuemin="0" aria-valuemax="100" style="width: 84.62%">
+           <span class="sr-only">84.62% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">30.00%</div></td>
-      <td class="danger small"><div align="right">9&nbsp;/&nbsp;30</div></td>
+      <td class="warning small"><div align="right">84.62%</div></td>
+      <td class="warning small"><div align="right">33&nbsp;/&nbsp;39</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="33.33" aria-valuemin="0" aria-valuemax="100" style="width: 33.33%">
-           <span class="sr-only">33.33% covered (danger)</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="danger small"><div align="right">33.33%</div></td>
-      <td class="danger small"><div align="right">2&nbsp;/&nbsp;6</div></td>
-      <td class="danger small">81.23</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="30.00" aria-valuemin="0" aria-valuemax="100" style="width: 30.00%">
-           <span class="sr-only">30.00% covered (danger)</span>
+      <td class="warning small"><div align="right">66.67%</div></td>
+      <td class="warning small"><div align="right">4&nbsp;/&nbsp;6</div></td>
+      <td class="warning small">15.82</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>
        </div>
 </td>
-      <td class="danger small"><div align="right">30.00%</div></td>
-      <td class="danger small"><div align="right">9&nbsp;/&nbsp;30</div></td>
+      <td class="warning small"><div align="right">84.62%</div></td>
+      <td class="warning small"><div align="right">33&nbsp;/&nbsp;39</div></td>
      </tr>
 
      <tr>
@@ -117,53 +117,53 @@
        </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>
+      <td class="success small"><div align="right">4&nbsp;/&nbsp;4</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#49"><abbr title="register($module, $hookName)">register</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="#50"><abbr title="register($module, $hookName)">register</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">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;3</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">11&nbsp;/&nbsp;11</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#62"><abbr title="trigger($hookName, $params =null)">trigger</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="#70"><abbr title="trigger($hookName, $params =null)">trigger</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">14.08</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="14.29" aria-valuemin="0" aria-valuemax="100" style="width: 14.29%">
-           <span class="sr-only">14.29% 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">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="danger small"><div align="right">14.29%</div></td>
-      <td class="danger small"><div align="right">2&nbsp;/&nbsp;14</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="#86"><abbr title="isInHook($hookName)">isInHook</abbr></a></td>
+      <td class="danger" colspan="4">&nbsp;<a href="#94"><abbr title="isInHook($hookName)">isInHook</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>
@@ -184,7 +184,7 @@
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#98"><abbr title="loadHooks($hookEntities)">loadHooks</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#106"><abbr title="loadHooks($hookEntities)">loadHooks</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="danger" colspan="4">&nbsp;<a href="#108"><abbr title="__get($key)">__get</abbr></a></td>
+      <td class="danger" colspan="4">&nbsp;<a href="#116"><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>
@@ -269,84 +269,92 @@
      <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="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>
-     <tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$hookname</span></td></tr>
-     <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Attach&nbsp;module&nbsp;$module&nbsp;to&nbsp;$hookName</span></td></tr>
-     <tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Can&nbsp;only&nbsp;be&nbsp;called&nbsp;while&nbsp;installing&nbsp;the&nbsp;module.</span></td></tr>
-     <tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;When&nbsp;fired,&nbsp;the&nbsp;AModule::doAction($hookName,&nbsp;$context)&nbsp;function&nbsp;will&nbsp;be&nbsp;called.</span></td></tr>
-     <tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><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;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">register</span><span class="keyword">(</span><span class="default">$module</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$hookName</span><span class="keyword">)</span></td></tr>
-     <tr><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;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><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="keyword">!</span><span class="default">\</span><span class="default">Tools</span><span class="default">\</span><span class="default">ModuleManager</span><span class="default">::</span><span class="default">isInstalling</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><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">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;register&nbsp;hooks&nbsp;while&nbsp;installing&quot;</span><span class="keyword">)</span><span class="keyword">;</span></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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//TODO@2</span></td></tr>
-     <tr class="danger"><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"></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="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$hookName</span></td></tr>
-     <tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;number&nbsp;of&nbsp;modules&nbsp;successfully&nbsp;reached</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;fire&nbsp;the&nbsp;hook&nbsp;hookName</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;call&nbsp;the&nbsp;AModule::doAction($hookEvent)&nbsp;function&nbsp;for&nbsp;each&nbsp;attached&nbsp;modules</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"><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="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>
-     <tr class="danger"><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="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">hooks</span><span class="keyword">[</span><span class="default">$hookName</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$module_id</span><span class="keyword">)</span></td></tr>
-     <tr><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">{</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">$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">context</span><span class="default">-&gt;</span><span class="default">moduleManager</span><span class="default">-&gt;</span><span class="default">getModuleFromId</span><span class="keyword">(</span><span class="default">$module_id</span><span class="keyword">)</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;&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">$module</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;&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="74"></a><a href="#74">74</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">$module</span><span class="default">-&gt;</span><span class="default">doAction</span><span class="keyword">(</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="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="default">$result</span><span class="default">++</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="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">array_pop</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="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="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="79"></a><a href="#79">79</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="80"></a><a href="#80">80</a></div></td><td class="codeLine"></td></tr>
-     <tr><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="comment">/**</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;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$hookName</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;@return&nbsp;boolean</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;Check&nbsp;if&nbsp;$hookName&nbsp;is&nbsp;treating</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">isInHook</span><span class="keyword">(</span><span class="default">$hookName</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 class="danger"><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">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">currentHook</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="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;&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">hookName</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">$hookName</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;&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="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="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="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;@param&nbsp;array(\Entity\ModuleHook)&nbsp;$module_hookEntities&nbsp;entities&nbsp;to&nbsp;load</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;Reload&nbsp;hooks&nbsp;from&nbsp;entities</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">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="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>
-     <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;**/</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;</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="109"></a><a href="#109">109</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="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">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="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="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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;currentHook&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">end</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="keyword">;</span></td></tr>
-     <tr class="warning"><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">}</span></td></tr>
-     <tr class="danger"><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">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="115"></a><a href="#115">115</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="116"></a><a href="#116">116</a></div></td><td class="codeLine"><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"></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;&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="8 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;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="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <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="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;\Tool\AModule&nbsp;$module</span></td></tr>
+     <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$hookname</span></td></tr>
+     <tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Attach&nbsp;module&nbsp;$module&nbsp;to&nbsp;$hookName</span></td></tr>
+     <tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Can&nbsp;only&nbsp;be&nbsp;called&nbsp;while&nbsp;installing&nbsp;the&nbsp;module.</span></td></tr>
+     <tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;When&nbsp;fired,&nbsp;the&nbsp;AModule::doAction($hookName,&nbsp;$context)&nbsp;function&nbsp;will&nbsp;be&nbsp;called.</span></td></tr>
+     <tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><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;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">register</span><span class="keyword">(</span><span class="default">$module</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$hookName</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;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 52" 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="52"></a><a href="#52">52</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">Tools</span><span class="default">\</span><span class="default">ModuleManager</span><span class="default">::</span><span class="default">isInstalling</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 53" 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="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;</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;register&nbsp;hooks&nbsp;while&nbsp;installing&quot;</span><span class="keyword">)</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::testInstall&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;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</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">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="1 test covers line 55" 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="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="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="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 56" 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="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="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><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">entity</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 57" 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="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">$moduleHook</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">ModuleHook</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 58" 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="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">$moduleHook</span><span class="default">-&gt;</span><span class="default">module_id</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">entity</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 59" 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="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$moduleHook</span><span class="default">-&gt;</span><span class="default">hookName</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$hookName</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 60" 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="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$moduleHook</span><span class="default">-&gt;</span><span class="default">hookPosition</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">10</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 61" 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="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$moduleHook</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="1 test covers line 62" 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="62"></a><a href="#62">62</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="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;@param&nbsp;string&nbsp;$hookName</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;@return&nbsp;number&nbsp;of&nbsp;modules&nbsp;successfully&nbsp;reached</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;fire&nbsp;the&nbsp;hook&nbsp;hookName</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;call&nbsp;the&nbsp;AModule::doAction($hookEvent)&nbsp;function&nbsp;for&nbsp;each&nbsp;attached&nbsp;modules</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;**/</span></td></tr>
+     <tr><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;</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="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 class="covered-by-large-tests popin" data-title="7 tests cover line 72" 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="72"></a><a href="#72">72</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 73" 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="73"></a><a href="#73">73</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="1 test covers line 74" 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="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="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="covered-by-large-tests popin" data-title="1 test covers line 75" 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="75"></a><a href="#75">75</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="covered-by-large-tests popin" data-title="1 test covers line 76" 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="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">$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>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 77" 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="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="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">hooks</span><span class="keyword">[</span><span class="default">$hookName</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$module_id</span><span class="keyword">)</span></td></tr>
+     <tr><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="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 79" 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="79"></a><a href="#79">79</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">$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">context</span><span class="default">-&gt;</span><span class="default">moduleManager</span><span class="default">-&gt;</span><span class="default">getModuleFromId</span><span class="keyword">(</span><span class="default">$module_id</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 80" 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="80"></a><a href="#80">80</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">$module</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 81" 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="81"></a><a href="#81">81</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 82" 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="82"></a><a href="#82">82</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">$module</span><span class="default">-&gt;</span><span class="default">doAction</span><span class="keyword">(</span><span class="default">$hookEvent</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 83" 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="83"></a><a href="#83">83</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">++</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 84" 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="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="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">array_pop</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="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">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="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"></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;</span><span class="comment">/**</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;@param&nbsp;string&nbsp;$hookName</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;&nbsp;*&nbsp;@return&nbsp;boolean</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;Check&nbsp;if&nbsp;$hookName&nbsp;is&nbsp;treating</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">isInHook</span><span class="keyword">(</span><span class="default">$hookName</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;</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;</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">currentHook</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="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="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">hookName</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">$hookName</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;&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="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;&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="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><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"></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;</span><span class="comment">/**</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;@param&nbsp;array(\Entity\ModuleHook)&nbsp;$module_hookEntities&nbsp;entities&nbsp;to&nbsp;load</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;Reload&nbsp;hooks&nbsp;from&nbsp;entities</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">loadHooks</span><span class="keyword">(</span><span class="default">$hookEntities</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="covered-by-large-tests popin" data-title="4 tests cover line 108" 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="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">$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 109" 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="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">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 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;&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 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;</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"></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;</span><span class="comment">/**</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;Getter</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;**/</span></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="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="117"></a><a href="#117">117</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="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="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="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">{</span></td></tr>
+     <tr class="danger"><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">case</span><span class="default">&nbsp;</span><span class="default">&quot;currentHook&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">end</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="keyword">;</span></td></tr>
+     <tr class="warning"><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="keyword">}</span></td></tr>
+     <tr class="danger"><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">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="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"><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"></td></tr>
 
     </tbody>
    </table>
@@ -359,7 +367,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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 207 - 166
doc/coverage/tools/ModuleManager.php.html

@@ -52,22 +52,22 @@
       <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="71.43" aria-valuemin="0" aria-valuemax="100" style="width: 71.43%">
-           <span class="sr-only">71.43% covered (warning)</span>
+         <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>
          </div>
        </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="warning small"><div align="right">75.00%</div></td>
+      <td class="warning small"><div align="right">6&nbsp;/&nbsp;8</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 class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="84.06" aria-valuemin="0" aria-valuemax="100" style="width: 84.06%">
+           <span class="sr-only">84.06% covered (warning)</span>
          </div>
        </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>
+      <td class="warning small"><div align="right">84.06%</div></td>
+      <td class="warning small"><div align="right">58&nbsp;/&nbsp;69</div></td>
      </tr>
 
      <tr>
@@ -81,26 +81,26 @@
       <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="71.43" aria-valuemin="0" aria-valuemax="100" style="width: 71.43%">
-           <span class="sr-only">71.43% covered (warning)</span>
+         <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>
          </div>
        </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="warning small">26.26</td>
+      <td class="warning small"><div align="right">75.00%</div></td>
+      <td class="warning small"><div align="right">6&nbsp;/&nbsp;8</div></td>
+      <td class="warning small">27.53</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 class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="84.06" aria-valuemin="0" aria-valuemax="100" style="width: 84.06%">
+           <span class="sr-only">84.06% covered (warning)</span>
          </div>
        </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>
+      <td class="warning small"><div align="right">84.06%</div></td>
+      <td class="warning small"><div align="right">58&nbsp;/&nbsp;69</div></td>
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#38"><abbr title="__construct(&amp;$context)">__construct</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#43"><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>
@@ -121,7 +121,7 @@
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#64"><abbr title="loadModuleFile($path)">loadModuleFile</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#69"><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>
@@ -142,7 +142,7 @@
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#83"><abbr title="loadModule($path, $module)">loadModule</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#88"><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>
@@ -163,7 +163,7 @@
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#98"><abbr title="install($modulename)">install</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#103"><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>
@@ -172,7 +172,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">3</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>
@@ -180,11 +180,11 @@
        </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>
+      <td class="success small"><div align="right">22&nbsp;/&nbsp;22</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#121"><abbr title="listAvailableModules()">listAvailableModules</abbr></a></td>
+      <td class="danger" colspan="4">&nbsp;<a href="#135"><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>
@@ -205,7 +205,7 @@
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#140"><abbr title="getModuleFromId($id)">getModuleFromId</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#154"><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>
@@ -226,7 +226,28 @@
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#153"><abbr title="__get($key)">__get</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#167"><abbr title="isInstalling()">isInstalling</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="#173"><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>
@@ -277,145 +298,165 @@
      <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">private</span><span class="default">&nbsp;</span><span class="default">$modules</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><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"></td></tr>
      <tr><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="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;_id_{ID}</span></td></tr>
-     <tr><td><div align="right"><a name="28"></a><a href="#28">28</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="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;ex:&nbsp;$context-&gt;moduleManager-&gt;_id_2&nbsp;will&nbsp;return&nbsp;module&nbsp;with&nbsp;id&nbsp;2</span></td></tr>
-     <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"></td></tr>
-     <tr><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;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;\Tool\Context&nbsp;$context</span></td></tr>
-     <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Load&nbsp;all&nbsp;active&nbsp;modules&nbsp;from&nbsp;database.</span></td></tr>
-     <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;&nbsp;*&nbsp;Enable&nbsp;hooks&nbsp;for&nbsp;these&nbsp;modules</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;Disable&nbsp;them&nbsp;if&nbsp;the&nbsp;module&nbsp;cannot&nbsp;be&nbsp;loaded</span></td></tr>
-     <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="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="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="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;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>
+     <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;boolean&nbsp;$installing&nbsp;true&nbsp;if&nbsp;a&nbsp;module&nbsp;is&nbsp;currently&nbsp;installing</span></td></tr>
+     <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span class="default">&nbsp;</span><span class="keyword">static</span><span class="default">&nbsp;</span><span class="default">$installing</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><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"></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="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;_id_{ID}</span></td></tr>
+     <tr><td><div align="right"><a name="33"></a><a href="#33">33</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="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;ex:&nbsp;$context-&gt;moduleManager-&gt;_id_2&nbsp;will&nbsp;return&nbsp;module&nbsp;with&nbsp;id&nbsp;2</span></td></tr>
+     <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"></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="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;\Tool\Context&nbsp;$context</span></td></tr>
+     <tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Load&nbsp;all&nbsp;active&nbsp;modules&nbsp;from&nbsp;database.</span></td></tr>
+     <tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Enable&nbsp;hooks&nbsp;for&nbsp;these&nbsp;modules</span></td></tr>
+     <tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Disable&nbsp;them&nbsp;if&nbsp;the&nbsp;module&nbsp;cannot&nbsp;be&nbsp;loaded</span></td></tr>
+     <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></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">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="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="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">$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 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="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 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;</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 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">$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 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">$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="50"></a><a href="#50">50</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 51" 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="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="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 52" 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="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">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 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;</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">$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 55" 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="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><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">else</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;&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 58" 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="58"></a><a href="#58">58</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 59" 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="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;&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="60"></a><a href="#60">60</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 61" 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="61"></a><a href="#61">61</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 62" 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="62"></a><a href="#62">62</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 63" 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="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><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"></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="comment">/**</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;@param&nbsp;string&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;@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="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</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">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="70"></a><a href="#70">70</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 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;</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 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;&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 73" 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="73"></a><a href="#73">73</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 74" 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="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="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 75" 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="75"></a><a href="#75">75</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="76"></a><a href="#76">76</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="77"></a><a href="#77">77</a></div></td><td class="codeLine"></td></tr>
+     <tr><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;</span><span class="comment">/**</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;@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="80"></a><a href="#80">80</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="81"></a><a href="#81">81</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="82"></a><a href="#82">82</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="83"></a><a href="#83">83</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="84"></a><a href="#84">84</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="85"></a><a href="#85">85</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="86"></a><a href="#86">86</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="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</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">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="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 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="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 91" 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="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="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 92" 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="92"></a><a href="#92">92</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 93" 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="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="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 94" 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="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">$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 95" 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="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="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="96"></a><a href="#96">96</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="97"></a><a href="#97">97</a></div></td><td class="codeLine"></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="comment">/**</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;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$modulename</span></td></tr>
+     <tr><td><div align="right"><a name="100"></a><a href="#100">100</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="101"></a><a href="#101">101</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="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</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;</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="104"></a><a href="#104">104</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 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="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 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;</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 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">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 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">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 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="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="2 tests cover line 110" 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="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="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 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;&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 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">$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="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="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 114" 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="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">$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="1 test covers line 115" 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="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">$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="1 test covers line 116" 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="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="default">self</span><span class="default">::</span><span class="default">$installing</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 117" 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="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">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 118" 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="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="1 test covers line 119" 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="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">self</span><span class="default">::</span><span class="default">$installing</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 120" 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="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="default">$hooks</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">ModuleHook</span><span class="default">::</span><span class="default">getModules</span><span class="keyword">(</span><span class="default">$entity</span><span class="default">-&gt;</span><span class="default">id</span><span class="keyword">)</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;ModuleManagerTest::testInstall&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="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$hooks</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="1 test covers line 122" 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="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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">delete</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 123" 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="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="default">$entity</span><span class="default">-&gt;</span><span class="default">delete</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 124" 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="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;</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="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="1 test covers line 126" 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="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="default">self</span><span class="default">::</span><span class="default">$installing</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 127" 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="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">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="128"></a><a href="#128">128</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="129"></a><a href="#129">129</a></div></td><td class="codeLine"></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;</span><span class="comment">/*</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;TODO&nbsp;revoir&nbsp;tout</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;@return&nbsp;array(AModule)</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;Will&nbsp;load&nbsp;every&nbsp;modules,&nbsp;and&nbsp;return&nbsp;them.</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">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="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="danger"><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="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="138"></a><a href="#138">138</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="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">$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="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="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="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">{</span></td></tr>
+     <tr class="danger"><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;&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="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="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="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;&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="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="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="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="danger"><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><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"></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;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="150"></a><a href="#150">150</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="151"></a><a href="#151">151</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="152"></a><a href="#152">152</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="153"></a><a href="#153">153</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</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">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="155"></a><a href="#155">155</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 156" 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="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">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="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="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;</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 159" 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="159"></a><a href="#159">159</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 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">}</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;</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="162"></a><a href="#162">162</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="163"></a><a href="#163">163</a></div></td><td class="codeLine"></td></tr>
+     <tr><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;</span><span class="comment">/**</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;true&nbsp;if&nbsp;a&nbsp;module&nbsp;is&nbsp;currently&nbsp;installing</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">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">isInstalling</span><span class="keyword">(</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;ModuleManagerTest::testInstall&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;</span><span class="keyword">{</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$installing</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="169"></a><a href="#169">169</a></div></td><td class="codeLine"></td></tr>
+     <tr><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;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="171"></a><a href="#171">171</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="172"></a><a href="#172">172</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><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;</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="174"></a><a href="#174">174</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="175"></a><a href="#175">175</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="176"></a><a href="#176">176</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 177" 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="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="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 178" 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="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;&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="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">}</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;ModuleManagerTest::testInstalled&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;</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 181" 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="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;</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="182"></a><a href="#182">182</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="183"></a><a href="#183">183</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="184"></a><a href="#184">184</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="185"></a><a href="#185">185</a></div></td><td class="codeLine"></td></tr>
 
     </tbody>
    </table>
@@ -428,7 +469,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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

File diff suppressed because it is too large
+ 1 - 9
doc/coverage/tools/Router.php.html


File diff suppressed because it is too large
+ 18 - 28
doc/coverage/tools/dashboard.html


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

@@ -42,31 +42,31 @@
     </thead>
     <tbody>
      <tr>
-      <td class="warning">Total</td>
-      <td class="warning big">       <div class="progress">
-         <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>
+      <td class="success">Total</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="90.04" aria-valuemin="0" aria-valuemax="100" style="width: 90.04%">
+           <span class="sr-only">90.04% covered (success)</span>
          </div>
        </div>
 </td>
-      <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="success small"><div align="right">90.04%</div></td>
+      <td class="success small"><div align="right">208&nbsp;/&nbsp;231</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 class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="82.05" aria-valuemin="0" aria-valuemax="100" style="width: 82.05%">
+           <span class="sr-only">82.05% covered (warning)</span>
          </div>
        </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="warning small"><div align="right">82.05%</div></td>
+      <td class="warning small"><div align="right">32&nbsp;/&nbsp;39</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>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="42.86" aria-valuemin="0" aria-valuemax="100" style="width: 42.86%">
+           <span class="sr-only">42.86% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">28.57%</div></td>
-      <td class="danger small"><div align="right">2&nbsp;/&nbsp;7</div></td>
+      <td class="danger small"><div align="right">42.86%</div></td>
+      <td class="danger small"><div align="right">3&nbsp;/&nbsp;7</div></td>
      </tr>
 
      <tr>
@@ -100,21 +100,21 @@
      <tr>
       <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 class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="85.71" aria-valuemin="0" aria-valuemax="100" style="width: 85.71%">
+           <span class="sr-only">85.71% covered (warning)</span>
          </div>
        </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>
+      <td class="warning small"><div align="right">85.71%</div></td>
+      <td class="warning small"><div align="right">12&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 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="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"><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>
@@ -154,51 +154,51 @@
      </tr>
 
      <tr>
-      <td class="danger"><span class="glyphicon glyphicon-file"></span> <a href="HookEvent.php.html">HookEvent.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="success"><span class="glyphicon glyphicon-file"></span> <a href="HookEvent.php.html">HookEvent.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>
          </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="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">7&nbsp;/&nbsp;7</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="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;2</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="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</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="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</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"><span class="glyphicon glyphicon-file"></span> <a href="Hooks.php.html">Hooks.php</a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="30.00" aria-valuemin="0" aria-valuemax="100" style="width: 30.00%">
-           <span class="sr-only">30.00% covered (danger)</span>
+      <td class="warning"><span class="glyphicon glyphicon-file"></span> <a href="Hooks.php.html">Hooks.php</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>
        </div>
 </td>
-      <td class="danger small"><div align="right">30.00%</div></td>
-      <td class="danger small"><div align="right">9&nbsp;/&nbsp;30</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="33.33" aria-valuemin="0" aria-valuemax="100" style="width: 33.33%">
-           <span class="sr-only">33.33% covered (danger)</span>
+      <td class="warning small"><div align="right">84.62%</div></td>
+      <td class="warning small"><div align="right">33&nbsp;/&nbsp;39</div></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="danger small"><div align="right">33.33%</div></td>
-      <td class="danger small"><div align="right">2&nbsp;/&nbsp;6</div></td>
+      <td class="warning small"><div align="right">66.67%</div></td>
+      <td class="warning small"><div align="right">4&nbsp;/&nbsp;6</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>
@@ -212,21 +212,21 @@
      <tr>
       <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 class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="84.06" aria-valuemin="0" aria-valuemax="100" style="width: 84.06%">
+           <span class="sr-only">84.06% covered (warning)</span>
          </div>
        </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>
+      <td class="warning small"><div align="right">84.06%</div></td>
+      <td class="warning small"><div align="right">58&nbsp;/&nbsp;69</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 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>
          </div>
        </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="warning small"><div align="right">75.00%</div></td>
+      <td class="warning small"><div align="right">6&nbsp;/&nbsp;8</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 Tue Aug 11 21:36:02 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 Wed Aug 12 18:42:22 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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>

+ 3 - 3
doc/html/_2main_8php_source.html

@@ -95,7 +95,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;{</div>
 <div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_test2_module.html#aa966adc12c56a4cc70da92207fa50929">    5</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_test2_module.html#aa966adc12c56a4cc70da92207fa50929">install</a>()</div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;    {</div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;        $this-&gt;<a class="code" href="class_tools_1_1_a_module.html#ab4218414b61680c0b9dee10c7f57e0a8">registerHook</a>(<span class="stringliteral">&quot;routerSetup&quot;</span>);</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;        $this-&gt;<a class="code" href="class_tools_1_1_a_module.html#a5b0a451462641aed2e7e92324a66bd64">registerHook</a>(<span class="stringliteral">&quot;routerSetup&quot;</span>);</div>
 <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;</div>
 <div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="class_test2_module.html#ab01ad47fd92026250cf7a4708ae5eecc">   10</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_test2_module.html#ab01ad47fd92026250cf7a4708ae5eecc">doAction</a>($ev)</div>
@@ -112,14 +112,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="ttc" id="_2main_8php_html_af1551df0af71bdc9ff09728aee51fb9c"><div class="ttname"><a href="_2main_8php.html#af1551df0af71bdc9ff09728aee51fb9c">Test2Module</a></div><div class="ttdeci">return new Test2Module</div><div class="ttdef"><b>Definition:</b> <a href="_2main_8php_source.html#l00019">main.php:19</a></div></div>
 <div class="ttc" id="class_test2_module_html_ab01ad47fd92026250cf7a4708ae5eecc"><div class="ttname"><a href="class_test2_module.html#ab01ad47fd92026250cf7a4708ae5eecc">Test2Module\doAction</a></div><div class="ttdeci">doAction($ev)</div><div class="ttdef"><b>Definition:</b> <a href="_2main_8php_source.html#l00010">main.php:10</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_a5b0a451462641aed2e7e92324a66bd64"><div class="ttname"><a href="class_tools_1_1_a_module.html#a5b0a451462641aed2e7e92324a66bd64">Tools\AModule\registerHook</a></div><div class="ttdeci">registerHook($hookName)</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00078">AModule.php:78</a></div></div>
 <div class="ttc" id="class_test2_module_html"><div class="ttname"><a href="class_test2_module.html">Test2Module</a></div><div class="ttdef"><b>Definition:</b> <a href="_2main_8php_source.html#l00003">main.php:3</a></div></div>
 <div class="ttc" id="class_test2_module_html_ae4e3b24f775b7637ae1d3c6f8356c094"><div class="ttname"><a href="class_test2_module.html#ae4e3b24f775b7637ae1d3c6f8356c094">Test2Module\doShortCode</a></div><div class="ttdeci">doShortCode($short, $params)</div><div class="ttdef"><b>Definition:</b> <a href="_2main_8php_source.html#l00014">main.php:14</a></div></div>
-<div class="ttc" id="class_tools_1_1_a_module_html_ab4218414b61680c0b9dee10c7f57e0a8"><div class="ttname"><a href="class_tools_1_1_a_module.html#ab4218414b61680c0b9dee10c7f57e0a8">Tools\AModule\registerHook</a></div><div class="ttdeci">static registerHook($hookName)</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00078">AModule.php:78</a></div></div>
 <div class="ttc" id="class_test2_module_html_aa966adc12c56a4cc70da92207fa50929"><div class="ttname"><a href="class_test2_module.html#aa966adc12c56a4cc70da92207fa50929">Test2Module\install</a></div><div class="ttdeci">install()</div><div class="ttdef"><b>Definition:</b> <a href="_2main_8php_source.html#l00005">main.php:5</a></div></div>
 </div><!-- fragment --></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">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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>

+ 4 - 4
doc/html/_a_module_8php_source.html

@@ -120,9 +120,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;            $this-&gt;entity = $entity;</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;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="class_tools_1_1_a_module.html#ab4218414b61680c0b9dee10c7f57e0a8">   78</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_a_module.html#ab4218414b61680c0b9dee10c7f57e0a8">registerHook</a>($hookName)</div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="class_tools_1_1_a_module.html#a5b0a451462641aed2e7e92324a66bd64">   78</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_a_module.html#a5b0a451462641aed2e7e92324a66bd64">registerHook</a>($hookName)</div>
 <div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    {</div>
-<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="l00080"></a><span class="lineno">   80</span>&#160;        $this-&gt;context-&gt;hookManager-&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#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>
@@ -151,14 +151,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <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>
+<div class="ttc" id="class_tools_1_1_a_module_html_a5b0a451462641aed2e7e92324a66bd64"><div class="ttname"><a href="class_tools_1_1_a_module.html#a5b0a451462641aed2e7e92324a66bd64">Tools\AModule\registerHook</a></div><div class="ttdeci">registerHook($hookName)</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00078">AModule.php:78</a></div></div>
 <div class="ttc" id="class_tools_1_1_a_module_html_a74ed34e6d7bc9f3f8c4fb58a12247ee2"><div class="ttname"><a href="class_tools_1_1_a_module.html#a74ed34e6d7bc9f3f8c4fb58a12247ee2">Tools\AModule\$entity</a></div><div class="ttdeci">$entity</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00022">AModule.php:22</a></div></div>
-<div class="ttc" id="class_tools_1_1_a_module_html_ab4218414b61680c0b9dee10c7f57e0a8"><div class="ttname"><a href="class_tools_1_1_a_module.html#ab4218414b61680c0b9dee10c7f57e0a8">Tools\AModule\registerHook</a></div><div class="ttdeci">static registerHook($hookName)</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00078">AModule.php:78</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_a_module_html_ad868339fe7830b388444095288d40e22"><div class="ttname"><a href="class_tools_1_1_a_module.html#ad868339fe7830b388444095288d40e22">Tools\AModule\setEntity</a></div><div class="ttdeci">setEntity($entity)</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00068">AModule.php:68</a></div></div>
 </div><!-- fragment --></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">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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_source.html

@@ -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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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_source.html

@@ -154,7 +154,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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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>

+ 7 - 7
doc/html/_context_8php_source.html

@@ -121,11 +121,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        $this-&gt;ip = $server[<span class="stringliteral">&quot;REMOTE_ADDR&quot;</span>];</div>
 <div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        $this-&gt;hookManager = <span class="keyword">new</span> <a class="code" href="class_tools_1_1_hooks.html">Hooks</a>($this);</div>
 <div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        $this-&gt;server = $server;</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"><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="l00098"></a><span class="lineno">   98</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="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"><a class="line" href="class_tools_1_1_context.html#aa9e0b443b9575f62bf9f8e85b1742c96">  101</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="l00102"></a><span class="lineno">  102</span>&#160;    {</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>
@@ -179,7 +179,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <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="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_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#l00101">Context.php:101</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="exceptions_2_error404_8php_source.html#l00003">Error404.php:3</a></div></div>
@@ -198,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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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>

+ 66 - 58
doc/html/_hooks_8php_source.html

@@ -105,75 +105,83 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    {</div>
 <div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        $this-&gt;context = $context;</div>
 <div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        $this-&gt;currentHook = array();</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="l00049"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#a708f58f8e895879111179ae63842d240">   49</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <span class="keyword">register</span>($module, $hookName)</div>
-<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">if</span> (!\<a class="code" href="namespace_tools.html">Tools</a>\ModuleManager::isInstalling())</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</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 register hooks while installing&quot;</span>);</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        <span class="comment">//TODO@2</span></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="l00062"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">   62</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">trigger</a>($hookName, $params =null)</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    {</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        <span class="keywordflow">if</span> (empty($this-&gt;hooks[$hookName]))</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;            <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        $hookEvent = <span class="keyword">new</span> <a class="code" href="class_tools_1_1_hook_event.html">HookEvent</a>($hookName, $this-&gt;context, $params);</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        array_push($this-&gt;currentHook, $hookEvent);</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        $result = 0;</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        <span class="keywordflow">foreach</span> ($this-&gt;hooks[$hookName] as $module_id)</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        {</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;            $module = $this-&gt;context-&gt;moduleManager-&gt;getModuleFromId($module_id);</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;            <span class="keywordflow">if</span> (!$module)</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                <span class="keywordflow">continue</span>;</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;            $module-&gt;doAction($hookEvent);</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;            $result++;</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        }</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        array_pop($this-&gt;currentHook);</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        <span class="keywordflow">return</span> $result;</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    }</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#aa8a639e43502e64c10e92114c86d0d24">   86</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_hooks.html#aa8a639e43502e64c10e92114c86d0d24">isInHook</a>($hookName)</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">foreach</span> ($this-&gt;currentHook as $i)</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;            <span class="keywordflow">if</span> ($i-&gt;hookName == $hookName)</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;        <span class="keywordflow">return</span> <span class="keyword">false</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;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#adc040cf46ed4deda06079b3ad84ee792">   98</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_hooks.html#adc040cf46ed4deda06079b3ad84ee792">loadHooks</a>($hookEntities)</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;        $this-&gt;hooks = array();</div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        <span class="keywordflow">foreach</span> ($hookEntities as $i)</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;            $this-&gt;hooks[$i-&gt;hookName][] = (int) $i-&gt;module_id;</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;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#a4537dad3b44254124991341cc91b28fb">  108</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_hooks.html#a4537dad3b44254124991341cc91b28fb">__get</a>($key)</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">switch</span> ($key)</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;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;currentHook&quot;</span>: <span class="keywordflow">return</span> end($this-&gt;currentHook);</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">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</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;}</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        $this-&gt;hooks = array();</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="l00050"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#a708f58f8e895879111179ae63842d240">   50</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <span class="keyword">register</span>($module, $hookName)</div>
+<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;        <span class="keywordflow">if</span> (!\<a class="code" href="namespace_tools.html">Tools</a>\ModuleManager::isInstalling())</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</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 register hooks while installing&quot;</span>);</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <span class="keywordflow">if</span> (!isset($this-&gt;hooks[$hookName]))</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;            $this-&gt;hooks[$hookName] = array();</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        $this-&gt;hooks[$hookName][] = $module-&gt;entity-&gt;id;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        $moduleHook = new \Entity\ModuleHook();</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        $moduleHook-&gt;module_id = $module-&gt;entity-&gt;id;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        $moduleHook-&gt;hookName = $hookName;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        $moduleHook-&gt;hookPosition = 10;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        $moduleHook-&gt;save();</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    }</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">   70</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">trigger</a>($hookName, $params =null)</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;        <span class="keywordflow">if</span> (empty($this-&gt;hooks[$hookName]))</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;            <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        $hookEvent = <span class="keyword">new</span> <a class="code" href="class_tools_1_1_hook_event.html">HookEvent</a>($hookName, $this-&gt;context, $params);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        array_push($this-&gt;currentHook, $hookEvent);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        $result = 0;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        <span class="keywordflow">foreach</span> ($this-&gt;hooks[$hookName] as $module_id)</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        {</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;            $module = $this-&gt;context-&gt;moduleManager-&gt;getModuleFromId($module_id);</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            <span class="keywordflow">if</span> (!$module)</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;            $module-&gt;doAction($hookEvent);</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;            $result++;</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;        array_pop($this-&gt;currentHook);</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        <span class="keywordflow">return</span> $result;</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;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#aa8a639e43502e64c10e92114c86d0d24">   94</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_hooks.html#aa8a639e43502e64c10e92114c86d0d24">isInHook</a>($hookName)</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    {</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <span class="keywordflow">foreach</span> ($this-&gt;currentHook as $i)</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;            <span class="keywordflow">if</span> ($i-&gt;hookName == $hookName)</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</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="l00106"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#adc040cf46ed4deda06079b3ad84ee792">  106</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_hooks.html#adc040cf46ed4deda06079b3ad84ee792">loadHooks</a>($hookEntities)</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;hooks = array();</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <span class="keywordflow">foreach</span> ($hookEntities as $i)</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;            $this-&gt;hooks[$i-&gt;hookName][] = (int) $i-&gt;module_id;</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;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#a4537dad3b44254124991341cc91b28fb">  116</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_hooks.html#a4537dad3b44254124991341cc91b28fb">__get</a>($key)</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;        <span class="keywordflow">switch</span> ($key)</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="keywordflow">case</span> <span class="stringliteral">&quot;currentHook&quot;</span>: <span class="keywordflow">return</span> end($this-&gt;currentHook);</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        }</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</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="l00123"></a><span class="lineno">  123</span>&#160;    }</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="ttc" id="class_tools_1_1_hooks_html_a7e676775f276fe0a207276cdbfb984c8"><div class="ttname"><a href="class_tools_1_1_hooks.html#a7e676775f276fe0a207276cdbfb984c8">Tools\Hooks\$currentHook</a></div><div class="ttdeci">$currentHook</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00026">Hooks.php:26</a></div></div>
 <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="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#l00094">Hooks.php:94</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_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#l00116">Hooks.php:116</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>
 <div class="ttc" id="class_tools_1_1_hooks_html"><div class="ttname"><a href="class_tools_1_1_hooks.html">Tools\Hooks</a></div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00008">Hooks.php:8</a></div></div>
-<div class="ttc" id="class_tools_1_1_hooks_html_adc040cf46ed4deda06079b3ad84ee792"><div class="ttname"><a href="class_tools_1_1_hooks.html#adc040cf46ed4deda06079b3ad84ee792">Tools\Hooks\loadHooks</a></div><div class="ttdeci">loadHooks($hookEntities)</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00098">Hooks.php:98</a></div></div>
+<div class="ttc" id="class_tools_1_1_hooks_html_adc040cf46ed4deda06079b3ad84ee792"><div class="ttname"><a href="class_tools_1_1_hooks.html#adc040cf46ed4deda06079b3ad84ee792">Tools\Hooks\loadHooks</a></div><div class="ttdeci">loadHooks($hookEntities)</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00106">Hooks.php:106</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_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_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#l00070">Hooks.php:70</a></div></div>
 </div><!-- fragment --></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">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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>

+ 97 - 78
doc/html/_model_base_8php_source.html

@@ -242,101 +242,120 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <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="l00159"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a13bdffdd926f26b825ea57066334ff01">  159</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <span class="keyword">delete</span>()</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> ($this-&gt;<span class="keywordtype">id</span> === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onBeforeEntityDelete&quot;</span>);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onBeforeEntityDelete&quot;</span>.$this-&gt;getTableName());</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        $id = (int) $this-&gt;<span class="keywordtype">id</span>;</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        <span class="keywordflow">foreach</span> ($this-&gt;fieldsValues as $i =&gt; $j)</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;            <span class="keywordflow">if</span> (!isset($this-&gt;changed[$i]))</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                $this-&gt;changed[$i] = $j;</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        <span class="keywordflow">if</span> (self::$dbo-&gt;exec(<span class="stringliteral">&quot;DELETE FROM {$this-&gt;getTableName()} WHERE `id`={$id}&quot;</span>) === <span class="keyword">false</span>)</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;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onAfterEntityDelete&quot;</span>);</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onAfterEntityDelete&quot;</span>.$this-&gt;getTableName());</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</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;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">  176</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="l00177"></a><span class="lineno">  177</span>&#160;    {</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        $query = <span class="stringliteral">&quot;SELECT * FROM {$this-&gt;getTableName()}&quot;</span>;</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> (!empty($criteria))</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;            $subQuery = array();</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;            <span class="keywordflow">foreach</span> ($criteria as $i =&gt; $j)</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;            {</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                <span class="keywordflow">if</span> ($j == null)</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                    $subQuery[] = <span class="stringliteral">&quot;`{$i}` IS NULL&quot;</span>;</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (is_array($j))</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;                    $inArray = [];</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                    <span class="keywordflow">foreach</span> ($j as $k)</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                        $inArray[] = self::$dbo-&gt;quote($k);</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</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="l00193"></a><span class="lineno">  193</span>&#160;                }</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                    $subQuery[] = <span class="stringliteral">&quot;`{$i}`=&quot;</span>.self::$dbo-&gt;quote($j);</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;            }</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</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="l00198"></a><span class="lineno">  198</span>&#160;        }</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        <span class="keywordflow">if</span> (!empty($orderBy))</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="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;            $_orderBy = array();</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;            <span class="keywordflow">foreach</span> ($orderBy as $i =&gt; $j)</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;            {</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;                <span class="keywordflow">if</span> (is_numeric($i))</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;                    $_orderBy[] = <span class="stringliteral">&quot;`{$j}` ASC&quot;</span>;</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;                <span class="keywordflow">else</span></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;                    $orderType = <span class="stringliteral">&quot;ASC&quot;</span>;</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;                    <span class="keywordflow">if</span> (strtoupper($j == <span class="stringliteral">&quot;DESC&quot;</span>))</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;                        $orderType = <span class="stringliteral">&quot;DESC&quot;</span>;</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;                    $_orderBy[] = <span class="stringliteral">&quot;`{$i}` {$orderType}&quot;</span>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;                }</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;            $query .= <span class="stringliteral">&quot; ORDER BY &quot;</span>.implode(<span class="stringliteral">&quot;,&quot;</span>, $_orderBy);</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;        $result = self::$dbo-&gt;query($query, \PDO::FETCH_ASSOC);</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;            <span class="keywordflow">throw</span> new \Exception(self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;        $resultObj = array();</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        $className = get_class($this);</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        <span class="keywordflow">foreach</span> ($result as $i)</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;            $iObj = <span class="keyword">new</span> $className();</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;            $iObj-&gt;populate($i);</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;            $resultObj[] = $iObj;</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;        <span class="keywordflow">return</span> $resultObj;</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    }</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"><a class="line" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">  230</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="l00231"></a><span class="lineno">  231</span>&#160;    {</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</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="l00233"></a><span class="lineno">  233</span>&#160;        $result = self::$dbo-&gt;query($query, \PDO::FETCH_ASSOC);</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span> || empty($result))</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</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="l00236"></a><span class="lineno">  236</span>&#160;        $this-&gt;populate($result-&gt;fetch());</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    }</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a70391280402677bbb9cb6616fb9376fb">  239</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="l00240"></a><span class="lineno">  240</span>&#160;    {</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;        $this-&gt;<span class="keywordtype">id</span> = FALSE;</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;        <span class="keywordflow">if</span> ($data === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;            <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot load entity: no result found&quot;</span>);</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;        <span class="keywordflow">foreach</span> ($data as $i =&gt; $j)</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;            $this-&gt;fieldsValues[$i] = $j;</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;        <span class="keywordflow">if</span> (isset($this-&gt;fieldsValues[<span class="stringliteral">&quot;id&quot;</span>]))</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</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="l00248"></a><span class="lineno">  248</span>&#160;        $this-&gt;changed = array();</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    }</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;}</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</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#l00154">ModelBase.php:154</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#l00176">ModelBase.php:176</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#l00208">ModelBase.php:208</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#l00230">ModelBase.php:230</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#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_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#l00070">Hooks.php:70</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#l00217">ModelBase.php:217</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#l00239">ModelBase.php:239</a></div></div>
 </div><!-- fragment --></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">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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>

+ 123 - 107
doc/html/_module_manager_8php_source.html

@@ -99,124 +99,140 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div>
 <div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a19e625c76c6796e995f33d323ee3aa84">   24</a></span>&#160;    <span class="keyword">private</span> $modules = array();</div>
 <div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div>
-<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a01955facbcef5c0159144d7209704be2">   38</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_module_manager.html#a01955facbcef5c0159144d7209704be2">__construct</a>(&amp;$context)</div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    {</div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        $this-&gt;context = $context;</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        $modulesRoot = $context-&gt;router-&gt;modulesPath;</div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        $modules = <a class="code" href="class_entity_1_1_module.html#a5a5d2fbfed8c77d8760c2d0473e92220">\Entity\Module::getActivated</a>();</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        $ids = array();</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <span class="keywordflow">foreach</span> ($modules as $i)</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        {</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;            $modulePath = <span class="stringliteral">&quot;{$modulesRoot}{$i-&gt;directory}/main.php&quot;</span>;</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;            <span class="keywordflow">if</span> (file_exists($modulePath) &amp;&amp; $this-&gt;loadModule($modulePath, $i))</div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;            {</div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                $ids[] = $i-&gt;id;</div>
-<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;                $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="l00029"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a36cecdf89abd520000db43ccab99da6d">   29</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">static</span> $installing = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a01955facbcef5c0159144d7209704be2">   43</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_module_manager.html#a01955facbcef5c0159144d7209704be2">__construct</a>(&amp;$context)</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;        $this-&gt;context = $context;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        $modulesRoot = $context-&gt;router-&gt;modulesPath;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        $modules = <a class="code" href="class_entity_1_1_module.html#a5a5d2fbfed8c77d8760c2d0473e92220">\Entity\Module::getActivated</a>();</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        $ids = array();</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        <span class="keywordflow">foreach</span> ($modules as $i)</div>
+<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;            $modulePath = <span class="stringliteral">&quot;{$modulesRoot}{$i-&gt;directory}/main.php&quot;</span>;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;            <span class="keywordflow">if</span> (file_exists($modulePath) &amp;&amp; $this-&gt;loadModule($modulePath, $i))</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;            {</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                $ids[] = $i-&gt;id;</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="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="l00056"></a><span class="lineno">   56</span>&#160;            <span class="keywordflow">else</span></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;                $i-&gt;active = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                $i-&gt;save();</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="line"><a name="l00062"></a><span class="lineno">   62</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="l00063"></a><span class="lineno">   63</span>&#160;    }</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a95b745cacad4b0bb9564b5dbd66828fe">   69</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="l00070"></a><span class="lineno">   70</span>&#160;    {</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        $mod = include_once($path);</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</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="l00073"></a><span class="lineno">   73</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        $mod-&gt;setContext($this-&gt;context);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        <span class="keywordflow">return</span> $mod;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    }</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a167a402eddef05c09ce608f803009baa">   88</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="l00089"></a><span class="lineno">   89</span>&#160;    {</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        $mod = $this-&gt;loadModuleFile($path);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        <span class="keywordflow">if</span> ($mod === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        $mod-&gt;setEntity($module);</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        $this-&gt;modules[] = $mod;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</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;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a3a08c349e26f53ae15f2526ffc70a091">  103</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="l00104"></a><span class="lineno">  104</span>&#160;    {</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        $entity = new \Entity\Module();</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        $entity-&gt;name = $modulename;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        $entity-&gt;directory = $modulename;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        $entity-&gt;active = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</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="l00110"></a><span class="lineno">  110</span>&#160;        <span class="keywordflow">if</span> ($module === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        $entity-&gt;name = $module-&gt;getName();</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        $entity-&gt;description = $module-&gt;getDescription();</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        $entity-&gt;save();</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        $module-&gt;setEntity($entity);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        self::$installing = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <span class="keywordflow">if</span> ($module-&gt;install() == <span class="keyword">false</span>)</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;            self::$installing = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;            $hooks = <a class="code" href="class_entity_1_1_module_hook.html#a71be00f62d624dea24303dd1cbb3e611">\Entity\ModuleHook::getModules</a>($entity-&gt;id);</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;            <span class="keywordflow">foreach</span> ($hooks as $i)</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                $i-&gt;delete();</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;            $entity-&gt;delete();</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</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;        self::$installing = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        <span class="keywordflow">return</span> $module;</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;</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="comment">/*</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="comment">     * TODO revoir tout</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="comment">     * @return array(AModule)</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="comment">     * Will load every modules, and return them.</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="comment">    **/</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a279ef46fb2e62ce756023d9a443d7953">  135</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="l00136"></a><span class="lineno">  136</span>&#160;    {</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        $modulesRoot = $context-&gt;router-&gt;modulesPath;</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        $result = array();</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        $modules = scandir($modulesRoot, SCANDIR_SORT_NONE);</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        <span class="keywordflow">foreach</span> ($modules as $i)</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;            $path = $modulesRoot.$i;</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</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="l00144"></a><span class="lineno">  144</span>&#160;                <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;            $this-&gt;loadModule($path);</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="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;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#ab1dcee2727d5614cb8c028c57d2271e8">  154</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="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">foreach</span> ($this-&gt;modules as $i)</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> ($i-&gt;entity-&gt;id == $id)</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                <span class="keywordflow">return</span> $i;</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">return</span> FALSE;</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;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#ae2f2483f1e0397c7f7a64c64a6a63025">  167</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_module_manager.html#ae2f2483f1e0397c7f7a64c64a6a63025">isInstalling</a>()</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    { <span class="keywordflow">return</span> self::$installing; }</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a4537dad3b44254124991341cc91b28fb">  173</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="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">switch</span> ($key)</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">case</span> <span class="stringliteral">&quot;modules&quot;</span>:</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                <span class="keywordflow">return</span> $this-&gt;modules; <span class="keywordflow">break</span>;</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> (substr($key, 0, 4) == <span class="stringliteral">&quot;_id_&quot;</span>)</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;            <span class="keywordflow">return</span> $this-&gt;getModuleFromId((<span class="keywordtype">int</span>) substr($key, 4));</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</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="l00183"></a><span class="lineno">  183</span>&#160;    }</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;}</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</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="class_entity_1_1_module_hook_html_a71be00f62d624dea24303dd1cbb3e611"><div class="ttname"><a href="class_entity_1_1_module_hook.html#a71be00f62d624dea24303dd1cbb3e611">Entity\ModuleHook\getModules</a></div><div class="ttdeci">static getModules($moduleIds)</div><div class="ttdef"><b>Definition:</b> <a href="_module_hook_8php_source.html#l00023">ModuleHook.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_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_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_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#l00069">ModuleManager.php:69</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#l00135">ModuleManager.php:135</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#l00088">ModuleManager.php:88</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#l00043">ModuleManager.php:43</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#l00153">ModuleManager.php:153</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#l00173">ModuleManager.php:173</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#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 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#l00154">ModuleManager.php:154</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#l00103">ModuleManager.php:103</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_ae2f2483f1e0397c7f7a64c64a6a63025"><div class="ttname"><a href="class_tools_1_1_module_manager.html#ae2f2483f1e0397c7f7a64c64a6a63025">Tools\ModuleManager\isInstalling</a></div><div class="ttdeci">static isInstalling()</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00167">ModuleManager.php:167</a></div></div>
 </div><!-- fragment --></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">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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_source.html

@@ -263,7 +263,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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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_source.html

@@ -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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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/annotated.html

@@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </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">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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 Tue Aug 11 2015 23:37:35 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Aug 12 2015 21:31:31 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_error404.html

@@ -184,7 +184,7 @@ Additional Inherited Members</h2></td></tr>
 </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">
+Generated on Wed Aug 12 2015 21:31:31 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_product_controller.html

@@ -183,7 +183,7 @@ Additional Inherited Members</h2></td></tr>
 </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">
+Generated on Wed Aug 12 2015 21:31:31 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>

+ 3 - 1
doc/html/class_entity_1_1_address.html

@@ -126,6 +126,8 @@ Additional Inherited Members</h2></td></tr>
 <tr class="separator:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">save</a> ()</td></tr>
 <tr class="separator:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a13bdffdd926f26b825ea57066334ff01 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a13bdffdd926f26b825ea57066334ff01">delete</a> ()</td></tr>
+<tr class="separator:a13bdffdd926f26b825ea57066334ff01 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">selects</a> ($criteria=null, $orderBy=null)</td></tr>
 <tr class="separator:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a> ($id)</td></tr>
@@ -196,7 +198,7 @@ Additional Inherited Members</h2></td></tr>
 </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">
+Generated on Wed Aug 12 2015 21:31:31 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>

Some files were not shown because too many files changed in this diff