Configuration.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace ThurData\Servers\KerioEmail\Core\SL;
  3. use Symfony\Component\Yaml\Yaml;
  4. use ThurData\Servers\KerioEmail\Core\ModuleConstants;
  5. /**
  6. * Description of Register
  7. *
  8. * @autor ThurData <info@thurdata.ch>
  9. */
  10. class Configuration extends AbstractReaderYml
  11. {
  12. protected function load()
  13. {
  14. list($dataDev, $dataCore) = $this->readFiles();
  15. $data = null;
  16. if (isset($dataDev) && isset($dataCore))
  17. {
  18. $this->buildData($dataDev, $dataCore, $data);
  19. }
  20. elseif (!isset($dataDev) && isset($dataCore) && isset($dataCore['class']))
  21. {
  22. $data = $dataCore['class'];
  23. }
  24. elseif (isset($dataDev) && !isset($dataCore) && isset($dataDev['class']))
  25. {
  26. $data = $dataDev['class'];
  27. }
  28. $this->data = $data;
  29. }
  30. private function buildData($dataDev, $dataCore, &$data)
  31. {
  32. if (isset($dataDev['class']) && isset($dataCore['class']))
  33. {
  34. foreach ($dataCore['class'] as $core)
  35. {
  36. $isFind = false;
  37. foreach ($dataDev['class'] as $dev)
  38. {
  39. if ($dev['name'] === $core['name'])
  40. {
  41. $isFind = true;
  42. break;
  43. }
  44. }
  45. if (!$isFind)
  46. {
  47. $dataDev['class'][] = $core;
  48. }
  49. }
  50. $data = $dataDev['class'];
  51. }
  52. elseif (!isset($dataDev['class']) && isset($dataCore['class']))
  53. {
  54. $data = $dataCore['class'];
  55. }
  56. elseif (isset($dataDev['class']) && !isset($dataCore['class']))
  57. {
  58. $data = $dataDev['class'];
  59. }
  60. }
  61. private function readFiles()
  62. {
  63. return [
  64. $this->readYml(ModuleConstants::getFullPath('app', 'Config', 'di', 'buildWithDefaultMethod.yml')),
  65. $this->readYml(ModuleConstants::getFullPath('core', 'Config', 'di', 'buildWithDefaultMethod.yml'))
  66. ];
  67. }
  68. }