/** * Iterate through all the elements and retrieve their validators * * @param FieldsetInterface $formOrFieldset * @param InputFilterInterface $inputFilter * @return array */ private function getElementAndRules(FieldsetInterface $formOrFieldset, InputFilterInterface $inputFilter) { $elements = array(); foreach ($formOrFieldset->getElements() as $element) { $validators = Filter::getValidatorsForElement($inputFilter, $element); if (count($validators) > 0 && !empty($element)) { $rules = array(); foreach ($validators as $validator) { $rule = $this->getServiceLocator()->get('Rule')->getRule($validator['instance']); if (!is_null($rule)) { $rules[] = $rule; } } $elements[] = array('element' => $element, 'rules' => $rules); } } foreach ($formOrFieldset->getFieldsets() as $key => $fieldset) { $elements = array_merge($elements, $this->getElementAndRules($fieldset, $inputFilter->get($key))); } return $elements; }