PhpExtensions.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace ModulesGarden\Servers\ZimbraEmail\Core\App\Requirements\Handlers;
  3. use ModulesGarden\Servers\ZimbraEmail\Core\App\Requirements\Handler;
  4. use ModulesGarden\Servers\ZimbraEmail\Core\App\Requirements\HandlerInterface;
  5. use ModulesGarden\Servers\ZimbraEmail\Core\App\Requirements\Instances\PhpExtensions as PhpExtensionsInstance;
  6. /**
  7. * Description of PhpExtensions
  8. *
  9. * @author INBSX-37H
  10. */
  11. class PhpExtensions extends Handler implements HandlerInterface
  12. {
  13. use \ModulesGarden\Servers\ZimbraEmail\Core\Traits\Lang;
  14. protected $extensionsList = [];
  15. public function __construct(array $classList = [])
  16. {
  17. $this->extensionsList = $classList;
  18. $this->handleRequirements();
  19. }
  20. public function handleRequirements()
  21. {
  22. foreach ($this->extensionsList as $record)
  23. {
  24. $this->handleRequirement($record);
  25. }
  26. }
  27. protected function handleRequirement($record)
  28. {
  29. $extension = $record[PhpExtensionsInstance::EXTENSION_NAME];
  30. if (extension_loaded($extension))
  31. {
  32. return null;
  33. }
  34. $this->addUnfulfilledRequirement('In order for the module to work correctly, it requires the :extension_name: PHP extension to be installed.',
  35. ['extension_name' => $extension]);
  36. }
  37. }