ModuleManager.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace Tools;
  3. class ModuleManager
  4. {
  5. private $context;
  6. private $modules = array();
  7. public function __construct($context)
  8. {
  9. $this->context = $context;
  10. $modulesRoot = $context->router->getModulesPath();
  11. $modules = \Entity\Module::getActivated();
  12. foreach ($modules as $i)
  13. {
  14. $modulePath = "{$modulesRoot}{$i->directory}/main.php";
  15. if (file_exists($modulePath))
  16. $this->loadModule($modulePath, $i);
  17. else
  18. {
  19. $i->active = false;
  20. $i->save();
  21. }
  22. }
  23. var_dump($this->modules);
  24. }
  25. private function loadModule($path, $module)
  26. {
  27. $this->modules[] = $module;
  28. return true;
  29. }
  30. public function listAvailableModules()
  31. {
  32. $modulesRoot = $context->router->getModulesPath();
  33. $modules = scandir($modulesRoot, SCANDIR_SORT_NONE);
  34. foreach ($modules as $i)
  35. {
  36. $path = $modulesRoot.$i;
  37. if ($i == '.' || $i == '..' || !is_dir($path))
  38. continue;
  39. $this->loadModule($path);
  40. }
  41. }
  42. }