Archiwum dla ‘Zend Framework’ kategoria

ZF Application

02-11-2010

Powstanie Zend_Application to milowy krok w rozwoju Zend Framework, ale podczas jego używania napotkałem na pewną niedogodność.

Otóż, jeżeli chcesz używać jakiegokolwiek zasobu aplikacji (Resource) w akcji trzeba użyć trochę skomplikowanego kodu:

$this->getInvokeParam(‘bootstrap’)->getResource(‘nazwa_zasobu’);

lub poza akcją (np. w modelu) takiego:

Zend_Controller_Front::getInstance()->getParam( ‘bootstrap’ )->getResource(‘nazwa_zasobu’);

Jak dla mnie to dość skomplikowane i nie pozwala EclipsePDT na podpowiadanie składni.

Ale jest rozwiązanie. Proste i szybkie:

global $application;
$application->getResource(‘nazwa_zasobu’);

Oczywiście $application to nazwa zmiennej która została użyta w index.php – tutaj użyta nazwa zmiennej występującej w domyślnie wygenerowanym przez Zend_Tool projekcie. Można go używać w całej aplikacji bez ograniczeń.

Na dodatek takie rozwiązanie działa kiedy mamy ustawione w php.ini: register_globals na Off. W takim środowisku to testowałem :)

Mam nadzieję, że rozwiązanie to pozwoli na prostsze używanie zasobów aplikacji (Zend_Application_Resource_*)

Obecnie rozważamy Proposal’a aby “ustatycznić” pobieranie zasobów z Zend_Application lub przebudowanie go tak aby mógł być używany jako Singleton.

Zend Framework Contributors

09-02-2009

Miło nam zakomunikować, że właśnie otrzymaliśmy status: Zend Framework Contributor.

Ale czym tu jest się chwalić. Oto informacja przysłana przez Zend’a:

Your account in our issue tracker (JIRA) is now associated with your
CLA, and we have added your account to the contributor group. You may
now post content and patches in the issue tracker, proposals on the
wiki, and any other contributions to Zend Framework may be accepted.

Czyli w skrócie: możemy  rozwijać, poprawiać błędy oraz dodawać nowe funkcjonalności do Zend Framework.

Wkrótce, tutaj na blogu, ukażą się szczegółowe informacje na temat pomysłów, które będziemy proponować.

We’re Zendish :) !!!!!!

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

08-13-2009

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:

?Download Confirm.php
<?php
 
class Validate_Confirm extends Zend_Validate_Abstract {
	/**
	 *
	 * @var Zend_Form_Element
	 */
	protected $_matchedField;
 
	const NOT_CONFIRMED = 'notConfirmed';
 
	protected $_messageTemplates = array(
			self::NOT_CONFIRMED => 'notConfirmed'
		);
 
	public function __construct( Zend_Form_Element $matchedField ) {
		$this->_matchedField = $matchedField;
	}
 
	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:

<?php
class Activation extends Zend_Form {	
 
	public function init(){
		//user_name
		$user_name = $this->createElement('text', 'user_name');
		$user_name->setRequired(true);
		$user_name->setLabel( 'user_name' );
		$this->addElement($user_name);
 
		//user_password
		$user_password = $this->createElement('password', 'user_password');
		$user_password->setRequired(true);
		$user_password->setLabel( 'user_password' );
		$this->addElement($user_password);
 
		//user_password_repeat
		$user_password2 = $this->createElement('password', 'user_password_repeat');
		$confirmVal = new Validate_Confirm( $user_password );
		$user_password2->addValidator($confirmVal);
		$user_password2->setRequired(true);
		$user_password2->setLabel( 'user_password_repeat' );
		$this->addElement($user_password2);
 
		//submit
		$submit = $this->createElement( 'submit', 'submit' );
		$submit->setLabel('btnNext');
		$this->addElement($submit);
	}
}
?>

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