/** * Validate the parameters accepted by this hydrator * * By default, a multipart parameter accepts exactly two parameters: * - the minimum number of occurrences of the contained part aggregate * - the maximum number of occurrences of the contained part aggregate * * @param array $parameters Parameters * @return boolean Parameters are valid */ public static function validateParameters(...$parameters) { // If the number of parameters isn't exactly 2 if (count($parameters) != 2) { throw new InvalidArgumentException(sprintf('Invalid multipart hydrator parameter count (%s)', count($parameters)), InvalidArgumentException::INVALID_MULTIPART_HYDRATOR_PARAMETER_COUNT); } // Validate the occurrence numbers AbstractPartAggregate::validateOccurrences(intval($parameters[0]), intval($parameters[1])); return true; }
/** * Return a particular part of a particular occurrence * * @param int $occurrence Occurrence index * @param string $part Part identifier * @return PartInterface Part instance */ protected function getOccurrencePart(&$occurrence, &$part) { reset($this->occurrences[$occurrence]); if ($part == self::WILDCARD) { $part = key($this->occurrences[$occurrence]); } return parent::getOccurrencePart($occurrence, $part); }