array( 'not_empty' => NULL, 'min_length' => array(2), 'max_length' => array(32), 'regex' => array('/^[-\pL\pN_.]++$/uD') ), 'password' => array( 'not_empty' => NULL, 'min_length' => array(5), 'max_length' => array(42) ), 'email' => array( 'not_empty' => NULL, 'min_length' => array(5), 'max_length' => array(127), 'validate::email' => NULL ) ); protected $_callbacks = array( 'email' => array('email_available') 'display_name' => array('display_name_available') ); public function validate_create(&$array){ $array = Validate::factory($array) ->filter(TRUE, 'trim') ->rules('display_name', $this->_rules['display_name']) ->rules('password', $this->_rules['password']) ->rules('email', $this->_rules['email']); foreach ($this->_callbacks as $field => $callbacks){ foreach ($callbacks as $callback){ $array->callback($field, array($this, $callback)); } } return $array; } }