The Xyster_Validate_Errors
class is a
notification object. It is responsible for collecting the messages
returned by a Zend_Validate
class. It implements
Xyster_Collection_Interface
so you
can iterate over it and count the elements inside.
Each message is stored in the set as a Xyster_Validate_Error
object, containing the message and the name of the field to which the
message applies.
The notification object can accept either a Zend_Filter_Input
or a Zend_Validate_Interface
that
will be used to collect messages.
Here is an example with a single Zend_Validate_Interface
object.
<?php require_once 'Zend/Validate/EmailAddress.php'; require_once 'Xyster/Validate/Errors.php'; $fieldName = 'email'; $errors = new Xyster_Validate_Errors(); $validator = new Zend_Validate_EmailAddress(); $email = $values[ $fieldName ]; if ($validator->isValid($email)) { // email appears to be valid } else { // email is invalid; get messages $errors->addValidateMessages($validator, $fieldName); }
Here is an example with a Zend_Filter_Input
object.
<?php require_once 'Zend/Filter/Input.php'; require_once 'Xyster/Validate/Errors.php'; $errors = new Xyster_Validate_Errors(); $filters = array( 'month' => 'Digits', 'account' => 'StringTrim' ); $validators = array( 'account' => 'Alpha' ); $input = new Zend_Filter_Input($filters, $validators, $values); if ( $input->isValid() ) { // all inputs are valid } else { // something is invalid; get messages $errors->addFilterInputMessages($input); }
Using the notification pattern, you can pass a
Xyster_Validate_Errors
object to the
layer of your application that performs the validation so the
messages can find their way to the presentation layer.