ModelBase.php.html 211 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Code Coverage for /win/work/Project/ecom/core/models/ModelBase.php</title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <link href="../css/bootstrap.min.css" rel="stylesheet">
  8. <link href="../css/style.css" rel="stylesheet">
  9. <!--[if lt IE 9]>
  10. <script src="../js/html5shiv.min.js"></script>
  11. <script src="../js/respond.min.js"></script>
  12. <![endif]-->
  13. </head>
  14. <body>
  15. <header>
  16. <div class="container">
  17. <div class="row">
  18. <div class="col-md-12">
  19. <ol class="breadcrumb">
  20. <li><a href="../index.html">/win/work/Project/ecom/core</a></li>
  21. <li><a href="index.html">models</a></li>
  22. <li class="active">ModelBase.php</li>
  23. </ol>
  24. </div>
  25. </div>
  26. </div>
  27. </header>
  28. <div class="container">
  29. <table class="table table-bordered">
  30. <thead>
  31. <tr>
  32. <td>&nbsp;</td>
  33. <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td>
  34. </tr>
  35. <tr>
  36. <td>&nbsp;</td>
  37. <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td>
  38. <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td>
  39. <td colspan="3"><div align="center"><strong>Lines</strong></div></td>
  40. </tr>
  41. </thead>
  42. <tbody>
  43. <tr>
  44. <td class="danger">Total</td>
  45. <td class="danger big"> <div class="progress">
  46. <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
  47. <span class="sr-only">0.00% covered (danger)</span>
  48. </div>
  49. </div>
  50. </td>
  51. <td class="danger small"><div align="right">0.00%</div></td>
  52. <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
  53. <td class="warning big"> <div class="progress">
  54. <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="76.92" aria-valuemin="0" aria-valuemax="100" style="width: 76.92%">
  55. <span class="sr-only">76.92% covered (warning)</span>
  56. </div>
  57. </div>
  58. </td>
  59. <td class="warning small"><div align="right">76.92%</div></td>
  60. <td class="warning small"><div align="right">10&nbsp;/&nbsp;13</div></td>
  61. <td class="warning small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
  62. <td class="success big"> <div class="progress">
  63. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="94.74" aria-valuemin="0" aria-valuemax="100" style="width: 94.74%">
  64. <span class="sr-only">94.74% covered (success)</span>
  65. </div>
  66. </div>
  67. </td>
  68. <td class="success small"><div align="right">94.74%</div></td>
  69. <td class="success small"><div align="right">144&nbsp;/&nbsp;152</div></td>
  70. </tr>
  71. <tr>
  72. <td class="danger">ModelBase</td>
  73. <td class="danger big"> <div class="progress">
  74. <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
  75. <span class="sr-only">0.00% covered (danger)</span>
  76. </div>
  77. </div>
  78. </td>
  79. <td class="danger small"><div align="right">0.00%</div></td>
  80. <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
  81. <td class="warning big"> <div class="progress">
  82. <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="78.57" aria-valuemin="0" aria-valuemax="100" style="width: 78.57%">
  83. <span class="sr-only">78.57% covered (warning)</span>
  84. </div>
  85. </div>
  86. </td>
  87. <td class="warning small"><div align="right">78.57%</div></td>
  88. <td class="warning small"><div align="right">11&nbsp;/&nbsp;14</div></td>
  89. <td class="warning small">59.51</td>
  90. <td class="success big"> <div class="progress">
  91. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="94.74" aria-valuemin="0" aria-valuemax="100" style="width: 94.74%">
  92. <span class="sr-only">94.74% covered (success)</span>
  93. </div>
  94. </div>
  95. </td>
  96. <td class="success small"><div align="right">94.74%</div></td>
  97. <td class="success small"><div align="right">144&nbsp;/&nbsp;152</div></td>
  98. </tr>
  99. <tr>
  100. <td class="success" colspan="4">&nbsp;<a href="#13"><abbr title="install()">install</abbr></a></td>
  101. <td class="success big"> <div class="progress">
  102. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  103. <span class="sr-only">100.00% covered (success)</span>
  104. </div>
  105. </div>
  106. </td>
  107. <td class="success small"><div align="right">100.00%</div></td>
  108. <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
  109. <td class="success small">1</td>
  110. <td class="None big">&nbsp;</td>
  111. <td class="None small"><div align="right"></div></td>
  112. <td class="None small"><div align="right">&nbsp;</div></td>
  113. </tr>
  114. <tr>
  115. <td class="success" colspan="4">&nbsp;<a href="#15"><abbr title="__construct($id = null)">__construct</abbr></a></td>
  116. <td class="success big"> <div class="progress">
  117. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  118. <span class="sr-only">100.00% covered (success)</span>
  119. </div>
  120. </div>
  121. </td>
  122. <td class="success small"><div align="right">100.00%</div></td>
  123. <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
  124. <td class="success small">3</td>
  125. <td class="success big"> <div class="progress">
  126. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  127. <span class="sr-only">100.00% covered (success)</span>
  128. </div>
  129. </div>
  130. </td>
  131. <td class="success small"><div align="right">100.00%</div></td>
  132. <td class="success small"><div align="right">5&nbsp;/&nbsp;5</div></td>
  133. </tr>
  134. <tr>
  135. <td class="danger" colspan="4">&nbsp;<a href="#23"><abbr title="init($config = null)">init</abbr></a></td>
  136. <td class="danger big"> <div class="progress">
  137. <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
  138. <span class="sr-only">0.00% covered (danger)</span>
  139. </div>
  140. </div>
  141. </td>
  142. <td class="danger small"><div align="right">0.00%</div></td>
  143. <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
  144. <td class="danger small">5.93</td>
  145. <td class="warning big"> <div class="progress">
  146. <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="66.67" aria-valuemin="0" aria-valuemax="100" style="width: 66.67%">
  147. <span class="sr-only">66.67% covered (warning)</span>
  148. </div>
  149. </div>
  150. </td>
  151. <td class="warning small"><div align="right">66.67%</div></td>
  152. <td class="warning small"><div align="right">4&nbsp;/&nbsp;6</div></td>
  153. </tr>
  154. <tr>
  155. <td class="success" colspan="4">&nbsp;<a href="#42"><abbr title="getDbPrefix()">getDbPrefix</abbr></a></td>
  156. <td class="success big"> <div class="progress">
  157. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  158. <span class="sr-only">100.00% covered (success)</span>
  159. </div>
  160. </div>
  161. </td>
  162. <td class="success small"><div align="right">100.00%</div></td>
  163. <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
  164. <td class="success small">1</td>
  165. <td class="success big"> <div class="progress">
  166. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  167. <span class="sr-only">100.00% covered (success)</span>
  168. </div>
  169. </div>
  170. </td>
  171. <td class="success small"><div align="right">100.00%</div></td>
  172. <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
  173. </tr>
  174. <tr>
  175. <td class="success" colspan="4">&nbsp;<a href="#47"><abbr title="getTableName()">getTableName</abbr></a></td>
  176. <td class="success big"> <div class="progress">
  177. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  178. <span class="sr-only">100.00% covered (success)</span>
  179. </div>
  180. </div>
  181. </td>
  182. <td class="success small"><div align="right">100.00%</div></td>
  183. <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
  184. <td class="success small">1</td>
  185. <td class="success big"> <div class="progress">
  186. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  187. <span class="sr-only">100.00% covered (success)</span>
  188. </div>
  189. </div>
  190. </td>
  191. <td class="success small"><div align="right">100.00%</div></td>
  192. <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
  193. </tr>
  194. <tr>
  195. <td class="success" colspan="4">&nbsp;<a href="#53"><abbr title="setup()">setup</abbr></a></td>
  196. <td class="success big"> <div class="progress">
  197. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  198. <span class="sr-only">100.00% covered (success)</span>
  199. </div>
  200. </div>
  201. </td>
  202. <td class="success small"><div align="right">100.00%</div></td>
  203. <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
  204. <td class="success small">4</td>
  205. <td class="success big"> <div class="progress">
  206. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  207. <span class="sr-only">100.00% covered (success)</span>
  208. </div>
  209. </div>
  210. </td>
  211. <td class="success small"><div align="right">100.00%</div></td>
  212. <td class="success small"><div align="right">15&nbsp;/&nbsp;15</div></td>
  213. </tr>
  214. <tr>
  215. <td class="danger" colspan="4">&nbsp;<a href="#79"><abbr title="getMeta($lang=null)">getMeta</abbr></a></td>
  216. <td class="danger big"> <div class="progress">
  217. <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
  218. <span class="sr-only">0.00% covered (danger)</span>
  219. </div>
  220. </div>
  221. </td>
  222. <td class="danger small"><div align="right">0.00%</div></td>
  223. <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
  224. <td class="danger small">2</td>
  225. <td class="danger big"> <div class="progress">
  226. <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
  227. <span class="sr-only">0.00% covered (danger)</span>
  228. </div>
  229. </div>
  230. </td>
  231. <td class="danger small"><div align="right">0.00%</div></td>
  232. <td class="danger small"><div align="right">0&nbsp;/&nbsp;2</div></td>
  233. </tr>
  234. <tr>
  235. <td class="success" colspan="4">&nbsp;<a href="#85"><abbr title="__get($key)">__get</abbr></a></td>
  236. <td class="success big"> <div class="progress">
  237. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  238. <span class="sr-only">100.00% covered (success)</span>
  239. </div>
  240. </div>
  241. </td>
  242. <td class="success small"><div align="right">100.00%</div></td>
  243. <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
  244. <td class="success small">5</td>
  245. <td class="success big"> <div class="progress">
  246. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  247. <span class="sr-only">100.00% covered (success)</span>
  248. </div>
  249. </div>
  250. </td>
  251. <td class="success small"><div align="right">100.00%</div></td>
  252. <td class="success small"><div align="right">7&nbsp;/&nbsp;7</div></td>
  253. </tr>
  254. <tr>
  255. <td class="success" colspan="4">&nbsp;<a href="#96"><abbr title="__set($key, $value)">__set</abbr></a></td>
  256. <td class="success big"> <div class="progress">
  257. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  258. <span class="sr-only">100.00% covered (success)</span>
  259. </div>
  260. </div>
  261. </td>
  262. <td class="success small"><div align="right">100.00%</div></td>
  263. <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
  264. <td class="success small">5</td>
  265. <td class="success big"> <div class="progress">
  266. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  267. <span class="sr-only">100.00% covered (success)</span>
  268. </div>
  269. </div>
  270. </td>
  271. <td class="success small"><div align="right">100.00%</div></td>
  272. <td class="success small"><div align="right">9&nbsp;/&nbsp;9</div></td>
  273. </tr>
  274. <tr>
  275. <td class="success" colspan="4">&nbsp;<a href="#110"><abbr title="save()">save</abbr></a></td>
  276. <td class="success big"> <div class="progress">
  277. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  278. <span class="sr-only">100.00% covered (success)</span>
  279. </div>
  280. </div>
  281. </td>
  282. <td class="success small"><div align="right">100.00%</div></td>
  283. <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
  284. <td class="success small">9</td>
  285. <td class="success big"> <div class="progress">
  286. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  287. <span class="sr-only">100.00% covered (success)</span>
  288. </div>
  289. </div>
  290. </td>
  291. <td class="success small"><div align="right">100.00%</div></td>
  292. <td class="success small"><div align="right">35&nbsp;/&nbsp;35</div></td>
  293. </tr>
  294. <tr>
  295. <td class="success" colspan="4">&nbsp;<a href="#159"><abbr title="delete()">delete</abbr></a></td>
  296. <td class="success big"> <div class="progress">
  297. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  298. <span class="sr-only">100.00% covered (success)</span>
  299. </div>
  300. </div>
  301. </td>
  302. <td class="success small"><div align="right">100.00%</div></td>
  303. <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
  304. <td class="success small">5</td>
  305. <td class="success big"> <div class="progress">
  306. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  307. <span class="sr-only">100.00% covered (success)</span>
  308. </div>
  309. </div>
  310. </td>
  311. <td class="success small"><div align="right">100.00%</div></td>
  312. <td class="success small"><div align="right">13&nbsp;/&nbsp;13</div></td>
  313. </tr>
  314. <tr>
  315. <td class="danger" colspan="4">&nbsp;<a href="#176"><abbr title="selects($criteria = null, $orderBy = null)">selects</abbr></a></td>
  316. <td class="danger big"> <div class="progress">
  317. <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
  318. <span class="sr-only">0.00% covered (danger)</span>
  319. </div>
  320. </div>
  321. </td>
  322. <td class="danger small"><div align="right">0.00%</div></td>
  323. <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
  324. <td class="danger small">12.12</td>
  325. <td class="success big"> <div class="progress">
  326. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="90.48" aria-valuemin="0" aria-valuemax="100" style="width: 90.48%">
  327. <span class="sr-only">90.48% covered (success)</span>
  328. </div>
  329. </div>
  330. </td>
  331. <td class="success small"><div align="right">90.48%</div></td>
  332. <td class="success small"><div align="right">38&nbsp;/&nbsp;42</div></td>
  333. </tr>
  334. <tr>
  335. <td class="success" colspan="4">&nbsp;<a href="#230"><abbr title="selectById($id)">selectById</abbr></a></td>
  336. <td class="success big"> <div class="progress">
  337. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  338. <span class="sr-only">100.00% covered (success)</span>
  339. </div>
  340. </div>
  341. </td>
  342. <td class="success small"><div align="right">100.00%</div></td>
  343. <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
  344. <td class="success small">3</td>
  345. <td class="success big"> <div class="progress">
  346. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  347. <span class="sr-only">100.00% covered (success)</span>
  348. </div>
  349. </div>
  350. </td>
  351. <td class="success small"><div align="right">100.00%</div></td>
  352. <td class="success small"><div align="right">6&nbsp;/&nbsp;6</div></td>
  353. </tr>
  354. <tr>
  355. <td class="success" colspan="4">&nbsp;<a href="#239"><abbr title="populate($data)">populate</abbr></a></td>
  356. <td class="success big"> <div class="progress">
  357. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  358. <span class="sr-only">100.00% covered (success)</span>
  359. </div>
  360. </div>
  361. </td>
  362. <td class="success small"><div align="right">100.00%</div></td>
  363. <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
  364. <td class="success small">4</td>
  365. <td class="success big"> <div class="progress">
  366. <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
  367. <span class="sr-only">100.00% covered (success)</span>
  368. </div>
  369. </div>
  370. </td>
  371. <td class="success small"><div align="right">100.00%</div></td>
  372. <td class="success small"><div align="right">9&nbsp;/&nbsp;9</div></td>
  373. </tr>
  374. </tbody>
  375. </table>
  376. <table id="code" class="table table-borderless table-condensed">
  377. <tbody>
  378. <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default">&lt;?php</span></td></tr>
  379. <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"></td></tr>
  380. <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default">&nbsp;</span><span class="default">Entity</span><span class="keyword">;</span></td></tr>
  381. <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"></td></tr>
  382. <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="keyword">abstract</span><span class="default">&nbsp;</span><span class="keyword">class</span><span class="default">&nbsp;</span><span class="default">ModelBase</span></td></tr>
  383. <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr>
  384. <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span class="default">&nbsp;</span><span class="default">$fieldsValues</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>
  385. <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span class="default">&nbsp;</span><span class="keyword">static</span><span class="default">&nbsp;</span><span class="default">$dbo</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>
  386. <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span class="default">&nbsp;</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>
  387. <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span class="default">&nbsp;</span><span class="keyword">static</span><span class="default">&nbsp;</span><span class="default">$config</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">;</span></td></tr>
  388. <tr><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;</span><span class="keyword">private</span><span class="default">&nbsp;</span><span class="default">$id</span><span class="keyword">;</span></td></tr>
  389. <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"></td></tr>
  390. <tr><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="keyword">protected</span><span class="default">&nbsp;</span><span class="keyword">abstract</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">install</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  391. <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"></td></tr>
  392. <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">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">$id</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>
  393. <tr><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">{</span></td></tr>
  394. <tr class="covered-by-large-tests popin" data-title="11 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;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;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="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">self</span><span class="default">::</span><span class="default">init</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  395. <tr class="covered-by-large-tests popin" data-title="11 tests cover line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;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;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="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="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">null</span><span class="keyword">;</span></td></tr>
  396. <tr class="covered-by-large-tests popin" data-title="11 tests cover line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;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;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="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="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$id</span><span class="default">&nbsp;</span><span class="default">!==</span><span class="default">&nbsp;</span><span class="default">null</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="default">is_numeric</span><span class="keyword">(</span><span class="default">$id</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
  397. <tr class="covered-by-large-tests popin" data-title="11 tests cover line 20" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;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;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="20"></a><a href="#20">20</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">selectById</span><span class="keyword">(</span><span class="default">$id</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  398. <tr class="covered-by-large-tests popin" data-title="11 tests cover line 21" data-content="&lt;ul&gt;&lt;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;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="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
  399. <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"></td></tr>
  400. <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">init</span><span class="keyword">(</span><span class="default">$config</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>
  401. <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>
  402. <tr class="covered-by-large-tests popin" data-title="11 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;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;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="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">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">&nbsp;</span><span class="default">!==</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span></td></tr>
  403. <tr class="covered-by-large-tests popin" data-title="11 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;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;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="26"></a><a href="#26">26</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>
  404. <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;@codeCoverageIgnoreStart</span></td></tr>
  405. <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Load&nbsp;config&nbsp;from&nbsp;written&nbsp;file;&nbsp;this&nbsp;file&nbsp;is&nbsp;created&nbsp;from&nbsp;setup&nbsp;script</span></td></tr>
  406. <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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$config</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">null</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$config</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>
  407. <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
  408. <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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">@</span><span class="keyword">include</span><span class="keyword">(</span><span class="default">&quot;core/config.inc.php&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  409. <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;&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">self</span><span class="default">::</span><span class="default">$config</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
  410. <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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>
  411. <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
  412. <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;@codeCoverageIgnoreEnd</span></td></tr>
  413. <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span></td></tr>
  414. <tr class="danger"><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$config</span><span class="keyword">;</span></td></tr>
  415. <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">self</span><span class="default">::</span><span class="default">$dbo</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">PDO</span><span class="keyword">(</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="keyword">[</span><span class="default">0</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="keyword">[</span><span class="default">1</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  416. <tr class="covered-by-large-tests popin" data-title="6 tests cover line 39" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
  417. <tr class="covered-by-large-tests popin" data-title="6 tests cover line 40" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
  418. <tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"></td></tr>
  419. <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="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">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
  420. <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">{</span></td></tr>
  421. <tr class="covered-by-large-tests popin" data-title="10 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::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="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">return</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="keyword">[</span><span class="default">3</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
  422. <tr class="warning"><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;</span><span class="keyword">}</span></td></tr>
  423. <tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"></td></tr>
  424. <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;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">getTableName</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
  425. <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;</span><span class="keyword">{</span></td></tr>
  426. <tr class="covered-by-large-tests popin" data-title="7 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::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="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="default">$className</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">ReflectionClass</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  427. <tr class="covered-by-large-tests popin" data-title="7 tests cover line 50" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testEnv&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::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="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">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">strtolower</span><span class="keyword">(</span><span class="default">$className</span><span class="default">-&gt;</span><span class="default">getShortName</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  428. <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;</span><span class="keyword">}</span></td></tr>
  429. <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"></td></tr>
  430. <tr><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="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">setup</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
  431. <tr><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>
  432. <tr class="covered-by-large-tests popin" data-title="6 tests cover line 55" data-content="&lt;ul&gt;&lt;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="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$tables</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;Admin&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;User&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;Address&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;Cart&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;Category&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;Product&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;CartProduct&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;Meta&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;Cms&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;Config&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;Module&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;ModuleHook&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  433. <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"></td></tr>
  434. <tr class="covered-by-large-tests popin" data-title="6 tests cover line 57" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;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="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">self</span><span class="default">::</span><span class="default">init</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  435. <tr class="covered-by-large-tests popin" data-title="6 tests cover line 58" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;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="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">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">beginTransaction</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  436. <tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span></td></tr>
  437. <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;</span><span class="keyword">{</span></td></tr>
  438. <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>
  439. <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>
  440. <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>
  441. <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>
  442. <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>
  443. <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>
  444. <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>
  445. <tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
  446. <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>
  447. <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>
  448. <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>
  449. <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>
  450. <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>
  451. <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>
  452. <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>
  453. <tr class="covered-by-large-tests popin" data-title="5 tests cover line 76" data-content="&lt;ul&gt;&lt;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="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">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
  454. <tr class="warning"><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
  455. <tr><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"></td></tr>
  456. <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">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">getMeta</span><span class="keyword">(</span><span class="default">$lang</span><span class="keyword">=</span><span class="default">null</span><span class="keyword">)</span></td></tr>
  457. <tr><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
  458. <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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$fetcher</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Meta</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  459. <tr class="danger"><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$fetcher</span><span class="default">-&gt;</span><span class="default">query</span><span class="keyword">(</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;type&quot;</span><span class="default">&nbsp;</span><span class="default">=&gt;</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><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  460. <tr class="warning"><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
  461. <tr><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"></td></tr>
  462. <tr><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">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>
  463. <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">{</span></td></tr>
  464. <tr class="covered-by-large-tests popin" data-title="8 tests cover line 87" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testEnv&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::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;AdminTest::testAdminPassword&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="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">&quot;meta&quot;</span><span class="keyword">)</span></td></tr>
  465. <tr class="covered-by-large-tests popin" data-title="8 tests cover line 88" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testEnv&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::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;AdminTest::testAdminPassword&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="88"></a><a href="#88">88</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">getMeta</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  466. <tr class="covered-by-large-tests popin" data-title="8 tests cover line 89" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testEnv&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::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;AdminTest::testAdminPassword&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="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</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>
  467. <tr class="covered-by-large-tests popin" data-title="8 tests cover line 90" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testEnv&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::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;AdminTest::testAdminPassword&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="90"></a><a href="#90">90</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</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">null</span><span class="default">&nbsp;</span><span class="keyword">?</span><span class="default">&nbsp;</span><span class="default">null</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>
  468. <tr class="covered-by-large-tests popin" data-title="8 tests cover line 91" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testEnv&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::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;AdminTest::testAdminPassword&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="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="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">$key</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
  469. <tr class="covered-by-large-tests popin" data-title="8 tests cover line 92" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testEnv&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::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;AdminTest::testAdminPassword&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="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">null</span><span class="keyword">;</span></td></tr>
  470. <tr class="covered-by-large-tests popin" data-title="7 tests cover line 93" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testEnv&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::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;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</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">$key</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
  471. <tr class="warning"><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
  472. <tr><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"></td></tr>
  473. <tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__set</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="keyword">)</span></td></tr>
  474. <tr><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
  475. <tr class="covered-by-large-tests popin" data-title="9 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::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="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$value</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">DateTime</span><span class="keyword">)</span></td></tr>
  476. <tr class="covered-by-large-tests popin" data-title="9 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::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="99"></a><a href="#99">99</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$value</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="default">-&gt;</span><span class="default">format</span><span class="keyword">(</span><span class="default">&quot;Y-m-d&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  477. <tr class="covered-by-large-tests popin" data-title="9 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::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="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">fieldsValues</span><span class="keyword">[</span><span class="default">$key</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="keyword">;</span></td></tr>
  478. <tr class="covered-by-large-tests popin" data-title="9 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::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="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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">is_bool</span><span class="keyword">(</span><span class="default">$value</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
  479. <tr class="covered-by-large-tests popin" data-title="9 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::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="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">changed</span><span class="keyword">[</span><span class="default">$key</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="default">&nbsp;</span><span class="keyword">?</span><span class="default">&nbsp;</span><span class="default">1</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>
  480. <tr class="covered-by-large-tests popin" data-title="9 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::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="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span><span class="default">&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$value</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>
  481. <tr class="covered-by-large-tests popin" data-title="9 tests cover line 104" data-content="&lt;ul&gt;&lt;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;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="104"></a><a href="#104">104</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">changed</span><span class="keyword">[</span><span class="default">$key</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">&quot;NULL&quot;</span><span class="keyword">;</span></td></tr>
  482. <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">else</span></td></tr>
  483. <tr class="covered-by-large-tests popin" data-title="9 tests cover line 106" data-content="&lt;ul&gt;&lt;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;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="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">changed</span><span class="keyword">[</span><span class="default">$key</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">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">$value</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  484. <tr class="covered-by-large-tests popin" data-title="9 tests cover line 107" data-content="&lt;ul&gt;&lt;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;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="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="keyword">;</span></td></tr>
  485. <tr class="warning"><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
  486. <tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"></td></tr>
  487. <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;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">save</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
  488. <tr><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
  489. <tr class="covered-by-large-tests popin" data-title="5 tests cover line 112" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::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="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">\</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;onBeforeEntitySave&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  490. <tr class="covered-by-large-tests popin" data-title="5 tests cover line 113" data-content="&lt;ul&gt;&lt;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="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">\</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;onBeforeEntitySave&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>
  491. <tr class="covered-by-large-tests popin" data-title="5 tests cover line 114" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;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="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">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">null</span><span class="keyword">)</span></td></tr>
  492. <tr class="covered-by-large-tests popin" data-title="5 tests cover line 115" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::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="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="keyword">{</span></td></tr>
  493. <tr class="covered-by-large-tests popin" data-title="4 tests cover line 116" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&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="116"></a><a href="#116">116</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">empty</span><span class="default">&nbsp;</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="keyword">)</span></td></tr>
  494. <tr class="covered-by-large-tests popin" data-title="4 tests cover line 117" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&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="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
  495. <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;ModelBaseTest::testEmptyTable&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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">INSERT&nbsp;INTO&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;()&nbsp;VALUES&nbsp;()</span><span class="string">&quot;</span><span class="keyword">;</span></td></tr>
  496. <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;ModelBaseTest::testEmptyTable&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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="default">$query</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  497. <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;ModelBaseTest::testEmptyTable&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;&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">$result</span><span class="keyword">)</span></td></tr>
  498. <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;ModelBaseTest::testEmptyTable&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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>
  499. <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;ModelBaseTest::testEmptyTable&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
  500. <tr><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span></td></tr>
  501. <tr><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
  502. <tr class="covered-by-large-tests popin" data-title="3 tests cover line 125" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&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="125"></a><a href="#125">125</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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">INSERT&nbsp;INTO&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;(`</span><span class="string">&quot;</span><span class="default">&nbsp;</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">array_keys</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="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">&quot;`)&nbsp;VALUES&nbsp;(&quot;</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</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">$this</span><span class="default">-&gt;</span><span class="default">changed</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">&quot;)&quot;</span><span class="keyword">;</span></td></tr>
  503. <tr class="covered-by-large-tests popin" data-title="3 tests cover line 126" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&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="126"></a><a href="#126">126</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="default">$query</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  504. <tr class="covered-by-large-tests popin" data-title="3 tests cover line 127" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&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="127"></a><a href="#127">127</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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">$result</span><span class="keyword">)</span></td></tr>
  505. <tr class="covered-by-large-tests popin" data-title="3 tests cover line 128" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&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="128"></a><a href="#128">128</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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>
  506. <tr class="covered-by-large-tests popin" data-title="3 tests cover line 129" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&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="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;&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>
  507. <tr><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
  508. <tr class="covered-by-large-tests popin" data-title="4 tests cover line 131" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&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="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">id</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">lastInsertId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  509. <tr class="covered-by-large-tests popin" data-title="4 tests cover line 132" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::testInstall&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="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>
  510. <tr><td><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span></td></tr>
  511. <tr><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;</span><span class="keyword">{</span></td></tr>
  512. <tr class="covered-by-large-tests popin" data-title="2 tests cover line 135" data-content="&lt;ul&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;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">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">$this</span><span class="default">-&gt;</span><span class="default">changed</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
  513. <tr class="covered-by-large-tests popin" data-title="2 tests cover line 136" data-content="&lt;ul&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;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">{</span></td></tr>
  514. <tr class="covered-by-large-tests popin" data-title="2 tests cover line 137" data-content="&lt;ul&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;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;&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>
  515. <tr class="covered-by-large-tests popin" data-title="2 tests cover line 138" data-content="&lt;ul&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;UserTest::testSave&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;&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;update&nbsp;private&nbsp;row&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  516. <tr class="covered-by-large-tests popin" data-title="2 tests cover line 139" data-content="&lt;ul&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;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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">UPDATE&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;SET&nbsp;</span><span class="string">&quot;</span><span class="keyword">;</span></td></tr>
  517. <tr class="covered-by-large-tests popin" data-title="2 tests cover line 140" data-content="&lt;ul&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;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newValues</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>
  518. <tr class="covered-by-large-tests popin" data-title="2 tests cover line 141" data-content="&lt;ul&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;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&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">changed</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>
  519. <tr class="covered-by-large-tests popin" data-title="2 tests cover line 142" data-content="&lt;ul&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;UserTest::testSave&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newValues</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="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">$j</span><span class="keyword">;</span></td></tr>
  520. <tr class="covered-by-large-tests popin" data-title="2 tests cover line 143" data-content="&lt;ul&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;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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">implode</span><span class="keyword">(</span><span class="default">&quot;,&quot;</span><span class="keyword">,</span><span class="default">$newValues</span><span class="keyword">)</span><span class="keyword">.</span><span class="string">&quot;</span><span class="string">&nbsp;WHERE&nbsp;id=</span><span class="string">{</span><span class="string">$this</span><span class="string">-&gt;</span><span class="string">id</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">;</span></td></tr>
  521. <tr class="covered-by-large-tests popin" data-title="2 tests cover line 144" data-content="&lt;ul&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;UserTest::testSave&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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="default">$query</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
  522. <tr class="covered-by-large-tests popin" data-title="2 tests cover line 145" data-content="&lt;ul&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;UserTest::testSave&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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="default">$result</span><span class="keyword">)</span></td></tr>
  523. <tr class="covered-by-large-tests popin" data-title="2 tests cover line 146" data-content="&lt;ul&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;UserTest::testSave&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;&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>
  524. <tr class="covered-by-large-tests popin" data-title="2 tests cover line 147" data-content="&lt;ul&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;UserTest::testSave&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;&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>
  525. <tr class="covered-by-large-tests popin" data-title="2 tests cover line 148" data-content="&lt;ul&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;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
  526. <tr><td><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
  527. <tr class="covered-by-large-tests popin" data-title="5 tests cover line 150" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModuleManagerTest::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="150"></a><a href="#150">150</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="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="keyword">;</span></td></tr>
  528. <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>
  529. <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>
  530. <tr><td><div align="right"><a name="153"></a><a href="#153">153</a></div></td><td class="codeLine"></td></tr>
  531. <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>
  532. <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>
  533. <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>
  534. <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>
  535. <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>
  536. <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>
  537. <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>
  538. <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>
  539. <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>
  540. <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>
  541. <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>
  542. <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>
  543. <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>
  544. <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>
  545. <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>
  546. <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>
  547. <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>
  548. <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>
  549. <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>
  550. <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>
  551. <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>
  552. <tr><td><div align="right"><a name="175"></a><a href="#175">175</a></div></td><td class="codeLine"></td></tr>
  553. <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>
  554. <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>
  555. <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>
  556. <tr><td><div align="right"><a name="179"></a><a href="#179">179</a></div></td><td class="codeLine"></td></tr>
  557. <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>
  558. <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>
  559. <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>
  560. <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>
  561. <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>
  562. <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>
  563. <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>
  564. <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>
  565. <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>
  566. <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>
  567. <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>
  568. <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>
  569. <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>
  570. <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>
  571. <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>
  572. <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>
  573. <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>
  574. <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>
  575. <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>
  576. <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>
  577. <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>
  578. <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>
  579. <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>
  580. <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>
  581. <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>
  582. <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>
  583. <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>
  584. <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>
  585. <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>
  586. <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>
  587. <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>
  588. <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>
  589. <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>
  590. <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>
  591. <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>
  592. <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>
  593. <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>
  594. <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>
  595. <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>
  596. <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>
  597. <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>
  598. <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>
  599. <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>
  600. <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>
  601. <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>
  602. <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>
  603. <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>
  604. <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>
  605. <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>
  606. <tr><td><div align="right"><a name="229"></a><a href="#229">229</a></div></td><td class="codeLine"></td></tr>
  607. <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>
  608. <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>
  609. <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>
  610. <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>
  611. <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>
  612. <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>
  613. <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>
  614. <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>
  615. <tr><td><div align="right"><a name="238"></a><a href="#238">238</a></div></td><td class="codeLine"></td></tr>
  616. <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>
  617. <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>
  618. <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>
  619. <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>
  620. <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>
  621. <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>
  622. <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>
  623. <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>
  624. <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>
  625. <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>
  626. <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>
  627. <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>
  628. <tr><td><div align="right"><a name="251"></a><a href="#251">251</a></div></td><td class="codeLine"></td></tr>
  629. </tbody>
  630. </table>
  631. <footer>
  632. <hr/>
  633. <h4>Legend</h4>
  634. <p>
  635. <span class="success"><strong>Executed</strong></span>
  636. <span class="danger"><strong>Not Executed</strong></span>
  637. <span class="warning"><strong>Dead Code</strong></span>
  638. </p>
  639. <p>
  640. <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>
  641. </p>
  642. <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
  643. </footer>
  644. </div>
  645. <script src="../js/jquery.min.js" type="text/javascript"></script>
  646. <script src="../js/bootstrap.min.js" type="text/javascript"></script>
  647. <script src="../js/holder.min.js" type="text/javascript"></script>
  648. <script type="text/javascript">
  649. $(function() {
  650. var $window = $(window)
  651. , $top_link = $('#toplink')
  652. , $body = $('body, html')
  653. , offset = $('#code').offset().top;
  654. $top_link.hide().click(function(event) {
  655. event.preventDefault();
  656. $body.animate({scrollTop:0}, 800);
  657. });
  658. $window.scroll(function() {
  659. if($window.scrollTop() > offset) {
  660. $top_link.fadeIn();
  661. } else {
  662. $top_link.fadeOut();
  663. }
  664. }).scroll();
  665. $('.popin').popover({trigger: 'hover'});
  666. });
  667. </script>
  668. </body>
  669. </html>