Classes.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace ThurData\Servers\KerioEmail\Core\App\Requirements\Handlers;
  3. use ThurData\Servers\KerioEmail\Core\App\Requirements\Handler;
  4. use ThurData\Servers\KerioEmail\Core\App\Requirements\Instances\Classes as ClassesInstance;
  5. use ThurData\Servers\KerioEmail\Core\App\Requirements\HandlerInterface;
  6. /**
  7. * Description of Files
  8. *
  9. * @autor ThurData <info@thurdata.ch>
  10. */
  11. class Classes extends Handler implements HandlerInterface
  12. {
  13. protected $classList = [];
  14. public function __construct(array $classList = [])
  15. {
  16. $this->classList = $classList;
  17. $this->handleRequirements();
  18. }
  19. public function handleRequirements()
  20. {
  21. foreach ($this->classList as $record)
  22. {
  23. $this->handleRequirement($record);
  24. }
  25. }
  26. protected function handleRequirement($record)
  27. {
  28. $className = $record[ClassesInstance::CLASS_NAME];
  29. if ($className[0] !== '\\')
  30. {
  31. $className = '\\' . $className;
  32. }
  33. if (class_exists($className))
  34. {
  35. return null;
  36. }
  37. $this->addUnfulfilledRequirement('In order for the module to work correctly, it requires the :class_name: class.',
  38. ['class_name' => $className]);
  39. }
  40. }