. * --------------------------------------------------------------------- */ namespace Glpi\System; use Glpi\System\Requirement\RequirementInterface; if (!defined('GLPI_ROOT')) { die("Sorry. You can't access this file directly"); } /** * @since 9.5.0 */ class RequirementsList implements \IteratorAggregate { /** * Requirements. * * @var RequirementInterface[] */ private $requirements; /** * @param RequirementInterface[] $requirements */ public function __construct(array $requirements = []) { $this->requirements = $requirements; } public function getIterator() { return new \ArrayIterator($this->requirements); } /** * Indicates if a mandatory requirement is missing. * * @return boolean */ public function hasMissingMandatoryRequirements() { foreach ($this->requirements as $requirement) { if ($requirement->isMissing() && !$requirement->isOptional()) { return true; } } return false; } /** * Indicates if an optional requirement is missing. * * @return boolean */ public function hasMissingOptionalRequirements() { foreach ($this->requirements as $requirement) { if ($requirement->isMissing() && $requirement->isOptional()) { return true; } } return false; } }