Zend Framework – Validator dla potwierdzenia hasła, emaila itp

Przy pracy nad pewnym projektem opartym o Zend Framework, zaistniała potrzeba walidacji elementów formularza, tak, by zawartość jednego elementy była identyczna jak innego, np hasło i jego potwierdzenie. Aby tego dokonać wystarczy stworzyć prosty walidator:

class Validate_Confirm extends Zend_Validate_Abstract {
	/**
	 *
	 * @var Zend_Form_Element
	 */
	protected $_matchedField;
 
	/**
	 *
	 */
	const NOT_CONFIRMED = 'notConfirmed';
 
	/**
	 *
	 * @var array
	 */
	protected $_messageTemplates = array(
			self::NOT_CONFIRMED => 'notConfirmed'
		);
 
	/**
	 *
	 * @param Zend_Form_Element $matchedField
	 */
	public function __construct( Zend_Form_Element $matchedField ) {
		$this->_matchedField = $matchedField;
	}
 
	/**
	 *
	 * @param $value
	 * @return boolean
	 */
	public function isValid( $value ) {
		if( $this->_matchedField->getValue()==$value ) {
			return true;
		} else {
			$this->_error( self::NOT_CONFIRMED );
			return false;
		}
	}
 
}

następnie taki walidator używamy w naszym formularzu:

class Form_User_Register extends Zend_Form {
 
	/**
	 * (non-PHPdoc)
	 * @see library/Zend/Zend_Form#init()
	 *
	 * sets the form inputs
	 */
	public function init() {
		$el = new Zend_Form_Element_Text( 'email' );
		$el->setLabel('Email');
		$el->addValidator( new Zend_Validate_EmailAddress() );
		$el->setRequired( true );
		$this->addElement($el);
 
		$el = new Zend_Form_Element_Password( 'password' );
		$el->setLabel('password');
		$el->setRequired( true );
		$this->addElement($el);
 
		$el2 = new Zend_Form_Element_Password( 'passwordConfirmation' );
		$el2->setLabel('confirmPassword');
		$el2->addValidator( new Validate_Confirm( $el ) );
		$el2->setRequired( true );
		$this->addElement($el2);
 
		$el = new Zend_Form_Element_Submit( 'signup', array('class'=>'ui-state-default ui-corner-all') );
		$el->setLabel('registerMe');
		$this->addElement($el);
	}
}

Dzięki takiemu zabiegowi nasz formularz sam sprawdzi, czy odpowiednie pola są sobie równe.

Objective-C. Notatki programisty.

Postanowiłem zebrać najbardziej istotne wiadomości na temat języka Objective-C w postaci strony Objective-C 2.0 – Notatki programisty. Strona ma służyć raczej powtórce/szybkiemu przeglądowi niż nauce tego języka.

To dopiero początek, strona będzie w miarę wolnego czasu aktualizowana i rozwijana.

Gorąco polecam stronę Cocoa Dev Central wszystkim, którzy chcieliby zrozumieć i nauczyć się programowania na Mac OS X