﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Alexandre JULIEN &#187; zf</title>
	<atom:link href="http://www.alexandre-julien.com/tag/zf/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.alexandre-julien.com</link>
	<description>Industrialisation des développements, PHP, .NET, jQuery, HTML5, Web, …</description>
	<lastBuildDate>Sun, 22 Jan 2012 20:26:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Zend Framework 2.0 : première version de développement</title>
		<link>http://www.alexandre-julien.com/php/zend-framework-php/zend-framework-2-0-premiere-version-de-developpement/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=zend-framework-2-0-premiere-version-de-developpement</link>
		<comments>http://www.alexandre-julien.com/php/zend-framework-php/zend-framework-2-0-premiere-version-de-developpement/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 20:19:28 +0000</pubDate>
		<dc:creator>Alexandre JULIEN</dc:creator>
				<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[zend framework 2]]></category>
		<category><![CDATA[zf]]></category>

		<guid isPermaLink="false">http://www.alexandre-julien.com/?p=1526</guid>
		<description><![CDATA[
Zend vient de diffuser une première version de développement de Zend Framework 2.0 afin de faire découvrir les quelques nouveautés de la bibliothèque PHP5.
Au programme, tout comme Symfony 2, Zend Framework 2.0 sera entièrement conçu pour PHP 5.3 avec les &#171;&#160;namespaces&#160;&#187;.

Toutefois rien de bien  [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.alexandre-julien.com/wp-content/uploads/2010/08/logo-zend-framework.jpg"><img class="aligncenter size-full wp-image-1528" title="logo-zend-framework" src="http://www.alexandre-julien.com/wp-content/uploads/2010/08/logo-zend-framework.jpg" alt="" width="282" height="190" /></a></p>
<p>Zend vient de diffuser une première version de développement de Zend Framework 2.0 afin de faire découvrir les quelques nouveautés de la bibliothèque PHP5.</p>
<p>Au programme, tout comme Symfony 2, Zend Framework 2.0 sera entièrement conçu pour PHP 5.3 avec les &laquo;&nbsp;namespaces&nbsp;&raquo;.</p>
<p><span id="more-1526"></span></p>
<div id="attachment_1529" class="wp-caption aligncenter" style="width: 680px"><a href="http://www.alexandre-julien.com/wp-content/uploads/2010/08/zf-2.0.png"><img class="size-full wp-image-1529" title="Zend Framework 2.0 : Zend Tool" src="http://www.alexandre-julien.com/wp-content/uploads/2010/08/zf-2.0.png" alt="" width="670" height="727" /></a><p class="wp-caption-text">Pas de nouvelle pour Zend Tool à l&#39;heure actuelle</p></div>
<p>Toutefois rien de bien nouveau sur cette version de développement. Elle correspondant principalement aux librairies de ZF 1.10.</p>
<p>Les seuls nouveautés concernent apparemment les tests unitaires qui seraient plus simplifiés, une ré-écriture totale de Zend_Session ainsi que l&#8217;ajout d&#8217;une nouvelle librairie Zend_stdlib permettant d&#8217;appeller les librairies standard de PHP d&#8217;une façon plus orienté objet et plus harmonisée.</p>
<div id="attachment_1530" class="wp-caption aligncenter" style="width: 1034px"><a href="http://www.alexandre-julien.com/wp-content/uploads/2010/08/zf-2.0-config.png"><img class="size-large wp-image-1530" title="Zend Framework 2.0 : Zend Application" src="http://www.alexandre-julien.com/wp-content/uploads/2010/08/zf-2.0-config-1024x733.png" alt="" width="1024" height="733" /></a><p class="wp-caption-text">Structure identique à Zend Framework 1.10</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.alexandre-julien.com/php/zend-framework-php/zend-framework-2-0-premiere-version-de-developpement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework #6 : Utilisation de Zend_Navigation</title>
		<link>http://www.alexandre-julien.com/php/zend-framework-php/zend-framework-6-utilisation-de-zend_navigation/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=zend-framework-6-utilisation-de-zend_navigation</link>
		<comments>http://www.alexandre-julien.com/php/zend-framework-php/zend-framework-6-utilisation-de-zend_navigation/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 15:54:54 +0000</pubDate>
		<dc:creator>Alexandre JULIEN</dc:creator>
				<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[zend_navigation]]></category>
		<category><![CDATA[zf]]></category>

		<guid isPermaLink="false">http://www.alexandre-julien.com/?p=1197</guid>
		<description><![CDATA[
Il est très utile dans une application Web d&#8217;avoir un système de navigation capable de cartographier les pages d&#8217;un site et d&#8217;en déduire des plan de site, fils d&#8217;arianes, menus, sitemap.xml, &#8230;
Zend_Navigation a été conçu dans cette optique, il propose un système de gestion de pages et des helpers  [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.alexandre-julien.com/wp-content/uploads/2009/09/banner_zf_logo_v1_9.jpg"><img class="aligncenter" title="Zend Framework 1.9.2" src="http://www.alexandre-julien.com/wp-content/uploads/2009/09/banner_zf_logo_v1_9.jpg" alt="" width="429" height="255" /></a></p>
<p>Il est très utile dans une application Web d&#8217;avoir un système de navigation capable de cartographier les pages d&#8217;un site et d&#8217;en déduire des plan de site, fils d&#8217;arianes, menus, sitemap.xml, &#8230;</p>
<p>Zend_Navigation a été conçu dans cette optique, il propose un système de gestion de pages et des helpers pour générer des composants graphiques.</p>
<p><span id="more-1197"></span></p>
<p>Nous allons voir dans ce tutoriel une façon simple de mettre en place Zend_Navigation :</p>
<p>Tout d&#8217;abord il nous faut définir la navigation et le conteneur de donnée. Dans notre cas, on stockera l&#8217;arborescence dans un fichier XML appellé &#8216;navigation.xml&#8217; dans le répertoire &laquo;&nbsp;config&nbsp;&raquo;.</p>
<pre class="brush: php; title: ; notranslate">
protected function _initNavigation() {
$this-&gt;bootstrap('layout');
$layout = $this-&gt;getResource('layout');
$view = $layout-&gt;getView();
$config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml', 'nav');
$container = new Zend_Navigation($config);
$view-&gt;navigation($container);
}
&lt;div&gt;
</pre>
<p>Ensuite, on remplit le fichier &laquo;&nbsp;navigation.xml&nbsp;&raquo; pour créer notre navigation, on y indiquera la page d&#8217;accueil et une page de listing.<br />
On se basera sur le système de routes pour donner le lien.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;configdata&gt;
 &lt;nav&gt;
 &lt;home&gt;
 &lt;label&gt;Accueil&lt;/label&gt;
 &lt;route&gt;index&lt;/route&gt;
 &lt;pages&gt;
 &lt;listing&gt;
 &lt;label&gt;Liste CRUD&lt;/label&gt;
 &lt;route&gt;listing&lt;/route&gt;
 &lt;/listing&gt;
&lt;/pages&gt;
&lt;/home&gt;
&lt;/nav&gt;
&lt;/configdata&gt;
</pre>
<p>Et voilà la mise en place de Zend_Navigation est fini. Il ne vous reste plus qu&#8217;à utiliser des helpers pour appeler vos composants :<br />
Pour le breadcrumb par exemple :</p>
<pre class="brush: php; title: ; notranslate">
$this-&gt;navigation()-&gt;breadcrumbs()-&gt;setSeparator(&quot; -&gt; &quot;);
</pre>
<p>Il existe d&#8217;autres façon d&#8217;intégrer Zend_Navigation sur une application notamment en intervenant directement sur le code. Cette méthode reste très simple mais très fonctionnelle. On y pourra voir des améliorations comme mettre en place un cache pour augmenter les performances.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexandre-julien.com/php/zend-framework-php/zend-framework-6-utilisation-de-zend_navigation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework #5 : Routing et UrlRewriting avec Zend_Controller</title>
		<link>http://www.alexandre-julien.com/php/zend-framework-php/zend-framework-5-routing-et-urlrewriting-avec-zend_controller/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=zend-framework-5-routing-et-urlrewriting-avec-zend_controller</link>
		<comments>http://www.alexandre-julien.com/php/zend-framework-php/zend-framework-5-routing-et-urlrewriting-avec-zend_controller/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 18:57:51 +0000</pubDate>
		<dc:creator>Alexandre JULIEN</dc:creator>
				<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Bootstrap]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Router]]></category>
		<category><![CDATA[UrlRewriting]]></category>
		<category><![CDATA[zend_controller]]></category>
		<category><![CDATA[zf]]></category>

		<guid isPermaLink="false">http://www.alexandre-julien.com/?p=1147</guid>
		<description><![CDATA[Un point essentiel à ne pas négliger sur une application Web est la ré-écriture d&#8217;URL via un système de routeur. Pourquoi ré-écrire des Urls alors que l&#8217;utilisateur n&#8217;en tape jamais directement ? Et bien tout simplement, parce que l&#8217;utilisateur ne comprend pas forcement où il se trouve sur le site  [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.alexandre-julien.com/wp-content/uploads/2009/09/banner_zf_logo_v1_9.jpg"><img class="aligncenter size-full wp-image-685" title="Zend Framework 1.9.2" src="http://www.alexandre-julien.com/wp-content/uploads/2009/09/banner_zf_logo_v1_9.jpg" alt="" /></a>Un point essentiel à ne pas négliger sur une application Web est la ré-écriture d&#8217;URL via un système de routeur. Pourquoi ré-écrire des Urls alors que l&#8217;utilisateur n&#8217;en tape jamais directement ? Et bien tout simplement, parce que l&#8217;utilisateur ne comprend pas forcement où il se trouve sur le site en regardant une Url de type &laquo;&nbsp;index.php?category=43&amp;id=32&amp;session=ad4zcf43lpo&amp;page=322214421&#8243;. Une url comme &laquo;&nbsp;maboutique.com/composants/processeurs/intel/liste-des-processeurs.html&nbsp;&raquo; est beaucoup plus parlante.</p>
<p>La preuve c&#8217;est qu&#8217; il s&#8217;agit du 3ème point qui influe le plus le référencement d&#8217;une page. Et puis on peut également avoir besoin internationaliser ses urls.</p>
<p>Zend Framework possède un routeur, qui permet de manipuler plus facilement les liens entre les pages au sein d&#8217;une application et également de faire de la réécriture.</p>
<p>Cette étape se fait au sein du Bootstrap d&#8217;une application Zend Framework et grâce à Zend_Controller.</p>
<p><span id="more-1147"></span></p>
<p>Il faut tout d&#8217;abord surcharger la méthode _initAutoLoad() du Bootstrap et récupérer l&#8217;instance de Zend_Controller</p>
<pre class="brush: php; title: ; notranslate">

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {

// Surcharge de _initAutoLoad
protected function _initAutoload()

{
$moduleLoader = new Zend_Application_Module_Autoloader(array('namespace'=&gt;'', 'basePath'=&gt;APPLICATION_PATH));

$frontController = Zend_Controller_Front::getInstance();
$router = $frontController-&gt;getRouter();

return $moduleLoader;
}

}
</pre>
<p>Ensuite il suffit simplement de créer ses routes et de les rajouter au routeur du contrôleur.<br />
Pour cela on a plusieurs possibilités, on peut créer des routes statiques, des routes basées sur les modules, etc &#8230;<br />
Le plus efficace est de créer des routes à partir d&#8217;URL pré-formatées grâce à des expressions régulières.<br />
On devra donc créer des instances de la classe Zend_Controller_Router_Route_Regex.</p>
<p>On la construira avec les arguments suivants :</p>
<p>1) La route : sous forme d&#8217;expression régulière (exemple : &#8216;produits/(.+)/(.+)/article-(.+)-(.+).html&#8217;)<br />
2) Le lien MVC : il faut donner les éléments statiques pour accéder à la page, c&#8217;est à dire le module, le contrôleur et l&#8217;action cible (exemple : array(&#8216;module&#8217; =&gt; &#8216;default&#8217;, &#8216;controller&#8217; =&gt; &#8216;products&#8217;, &#8216;action&#8217; =&gt; &#8216;showProduct&#8217;))<br />
3)Le mapping des paramètre : on donne dans l&#8217;ordre le nom des paramètres que l&#8217;on passera dans l&#8217;Url (exemple : array(1 =&gt; &#8216;category&#8217;, 2=&gt; &#8216;subcategory&#8217;, 3 =&gt; &#8216;product_title&#8217;, 4 =&gt; &#8216;product_ref&#8217;))<br />
4) Le chemin inverse : une version de l&#8217;url interprétable par la fonction sprintf() de PHP (exemple : &#8216;produits/%s/%s/article-%s-%d.html&#8217;)</p>
<pre class="brush: php; title: ; notranslate">

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {

// Surcharge de _initAutoLoad
protected function _initAutoload()

{
$moduleLoader = new Zend_Application_Module_Autoloader(array('namespace'=&gt;'', 'basePath'=&gt;APPLICATION_PATH));

$frontController = Zend_Controller_Front::getInstance();
$router = $frontController-&gt;getRouter();

// Nouvelle route pour accéder à produit
$article = new Zend_Controller_Router_Route_Regex(
 'produits/(.+)/(.+)/article-(.+)-(.+).html',
 array('module' =&gt; 'default', 'controller' =&gt; 'products', 'action' =&gt; 'showProduct'),
 array(1 =&gt; 'category', 2=&gt; 'subcategory', 3 =&gt; 'product_title', 4 =&gt; 'product_ref'),
 'produits/%s/%s/article-%s-%d.html');
$router-&gt;addRoute($article);

return $moduleLoader;
}

}
</pre>
<p>Ainsi on pourra créer et appeler une url de type : &laquo;&nbsp;www.maboutique.com/produits/processeurs/dual-core/article-intelcore2duo-PI5421.html&nbsp;&raquo;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexandre-julien.com/php/zend-framework-php/zend-framework-5-routing-et-urlrewriting-avec-zend_controller/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework tutoriel #4 : Création de formulaire et validations avec Zend_Form et Zend_Validate</title>
		<link>http://www.alexandre-julien.com/php/zend-framework-php/zend-framework-tutoriel-4-creation-de-formulaire-et-validations-avec-zend_form-et-zend_validate/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=zend-framework-tutoriel-4-creation-de-formulaire-et-validations-avec-zend_form-et-zend_validate</link>
		<comments>http://www.alexandre-julien.com/php/zend-framework-php/zend-framework-tutoriel-4-creation-de-formulaire-et-validations-avec-zend_form-et-zend_validate/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 19:30:30 +0000</pubDate>
		<dc:creator>Alexandre JULIEN</dc:creator>
				<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[formulaire]]></category>
		<category><![CDATA[validateur]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[zend_form]]></category>
		<category><![CDATA[zend_validate]]></category>
		<category><![CDATA[zf]]></category>

		<guid isPermaLink="false">http://www.alexandre-julien.com/?p=763</guid>
		<description><![CDATA[
Zend Framework possède son propre outil pour gérer les formulaires correctement : Zend_Form est là pour ça !
Il s&#8217;agit d&#8217;une librairie qui gère vos composants de formulaires (y compris leur rendu), les validations, le filtrage des données, et la gestion de sous-formulaires.
La librairie  [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.alexandre-julien.com/wp-content/uploads/2009/09/forms.jpg"><img class="size-medium wp-image-766 aligncenter" title="forms" src="http://www.alexandre-julien.com/wp-content/uploads/2009/09/forms-300x227.jpg" alt="forms" width="300" height="227" /></a></p>
<p>Zend Framework possède son propre outil pour gérer les formulaires correctement : Zend_Form est là pour ça !<br />
Il s&#8217;agit d&#8217;une librairie qui gère vos composants de formulaires (y compris leur rendu), les validations, le filtrage des données, et la gestion de sous-formulaires.<br />
La librairie Zend_Validate qui gère les validateurs sera aussi utiliser dans ce tutoriel afin d&#8217;illustrer les validations de formulaire et ce de façon personnalisé.</p>
<p><span id="more-763"></span></p>
<p>Tout d&#8217;abord nous allons voir les principes basiques des formulaires avec Zend Framework : <strong>il nous faudra ajouter un dossier &laquo;&nbsp;forms&nbsp;&raquo; dans notre répertoire &laquo;&nbsp;application&nbsp;&raquo;</strong>.</p>
<p><a href="http://www.alexandre-julien.com/wp-content/uploads/2009/09/forms_folder.png"><img class="aligncenter size-full wp-image-770" title="forms_folder" src="http://www.alexandre-julien.com/wp-content/uploads/2009/09/forms_folder.png" alt="forms_folder" width="377" height="133" /> </a></p>
<p>Voici un premier example de la création d&#8217;un formulaire dans notre fichier &laquo;&nbsp;Author.php&nbsp;&raquo;. Il s&#8217;agit d&#8217;une classe qui correspondra à un formulaire d&#8217;inscription d&#8217;un auteur :</p>
<pre class="brush: php; title: ; notranslate">
class Form_Author extends Zend_Form
{
  /**
   * Surcharge du constructeur du formulaire
   */
  public function __construct($options = null)
  {
    parent::__construct($options = null)
    $this-&gt;setName('subscription'); // On nomme le formulaire

    $id = new Zend_Form_Element_Hidden('id'); // On rajoute un champs caché

    $email = new Zend_Form_Element_Text('email');
    $email-&gt;setRequired(true)
          -&gt;setLabel('Veuillez saisir votre e-mail');

     // Nous avons rajouter un attribut obligatoire à notre email et nous lui avons donné un libellé avant le champs texte

    // Ensuite on peut insérer les composants (elements) dans le formulaire
    $this-&gt;addElements($id, $email);

  }
}
</pre>
<p>Nous avons réaliser une ébauche de formulaire, pour l&#8217;utiliser dans notre contrôleur et vue, rien de plus simple</p>
<p>AuthorController.php</p>
<pre class="brush: php; title: ; notranslate">

function suscribeAction ()

{

$form = new Form_Author(); // On instancie le formulaire

$this-&gt;view-&gt;form = $form // On le renvoie à la vue

}

// Pour l'éditer il faut renvoyer les informations au formulaire

function editsubscriptionAction()

{

$form = new Form_Author();

$model = new Model_DbTable_Author();

$data = $model-&gt;getAuthor('5'); // On récupère toutes les données d'un auteur dans la base de données

$form-&gt;populate ($data); // On propulse les données dans le formulaire

$this-&gt;view-&gt;form = $form;

}
</pre>
<p>Ensuite dans la vue, on affiche le formulaire et on définit son action :</p>
<p>Author.phtml</p>
<pre class="brush: php; title: ; notranslate">
echo $this-&gt;form;
$this-&gt;form&gt;setAction(author/save); // On définit l'action qui récupère le formulaire
</pre>
<p>Voici un exemple beaucoup plus complet d&#8217;un formulaire avec des validateurs, internationalisation et un captcha :</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
class Form_Author extends Zend_Form
{
public function __construct($options = null)
{
parent::__construct($options);
$this-&gt;setName('Subscription');
$id = new Zend_Form_Element_Hidden('id');

$translate = Zend_Registry::get('translate');

$emptyValidator = new Zend_Validate_NotEmpty();
$emptyValidator-&gt;setMessage($translate-&gt;_(&quot;Ce champs est vide : vous devez le compléter&quot;));

$emailValidator = new Zend_Validate_EmailAddress();
$emailValidator-&gt;setMessage($translate-&gt;_('L\'adresse email n\'est pas valide'));

$primaryValidator = new Zend_Validate_Db_NoRecordExists('users', 'username');
$primaryValidator-&gt;setMessage($translate-&gt;_(&quot;L'adresse email a déjà été utilisée&quot;), Zend_Validate_Db_Abstract::ERROR_RECORD_FOUND);

$stringLengthValdiator = new Zend_Validate_StringLength(6, 12);
$stringLengthValdiator-&gt;setMessage($translate-&gt;_('La longueur du mot de pase doit être comprise entre 6 et 12 caractères'));

$email = new Zend_Form_Element_Text('email');
$email-&gt;setLabel($translate-&gt;_('Email'))
-&gt;setRequired(true)
-&gt;addFilter('StripTags')
-&gt;addFilter('StringTrim')
-&gt;addValidator($emailValidator)
-&gt;addValidator($primaryValidator)
-&gt;addValidator($emptyValidator);

$password = new Zend_Form_Element_Password('password');
$password-&gt;setLabel($translate-&gt;_('mot de passe'));
$password-&gt;addValidator($stringLengthValdiator);
$password-&gt;addValidator($emptyValidator);

$password_verification = new Zend_Form_Element_Password ('password_confirm');
$password_verification-&gt;setLabel ($translate-&gt;_('retapez le mot de passe pour vérification'));
$password_verification-&gt;addValidator($emptyValidator);
if (isset($_POST['password'])) {
$passwordVerificationValidator = new Zend_Validate_Identical($_POST['password']);
$passwordVerificationValidator-&gt;setMessage($translate-&gt;_('Les mots de passe ne correspondent pas'));
$password_verification-&gt;addValidator($passwordVerificationValidator);
}

$sex = new Zend_Form_Element_Radio('sex', array('separator' =&gt; ' '));
$sex-&gt;setMultiOptions (array('male' =&gt; 'Homme', 'female' =&gt; 'Femme '))
-&gt;setLabel($translate-&gt;_('Sexe'))
-&gt; isRequired(true);

$name = new Zend_Form_Element_Text('name');
$name-&gt;setLabel($translate-&gt;_('Prénom'))
-&gt;setRequired(true)
-&gt;addFilter('StripTags')
-&gt;addFilter('StringTrim')
-&gt;addValidator($emptyValidator);

$surname = new Zend_Form_Element_Text('surname');
$surname-&gt;setLabel($translate-&gt;_('Nom'))
-&gt;setRequired(true)
-&gt;addFilter('StripTags')
-&gt;addFilter('StringTrim')
-&gt;addValidator($emptyValidator);

$address = new Zend_Form_Element_Text('address_author');
$address-&gt;setLabel($translate-&gt;_('Adresse'))
-&gt;setRequired(true)
-&gt;addFilter('StripTags')
-&gt;addFilter('StringTrim')
-&gt;addValidator($emptyValidator);

$zip_code = new Zend_Form_Element_Text('zip_code_author');
$zip_code-&gt;setLabel($translate-&gt;_('Code Postal'))
-&gt;setRequired(true)
-&gt;addFilter('StripTags')
-&gt;addFilter('StringTrim')
-&gt;addValidator($emptyValidator);

$city = new Zend_Form_Element_Text('city_author');
$city-&gt;setLabel($translate-&gt;_('Ville'))
-&gt;setRequired(true)
-&gt;addFilter('StripTags')
-&gt;addFilter('StringTrim')
-&gt;addValidator($emptyValidator);

$phone = new Zend_Form_Element_Text('phone');
$phone-&gt;setLabel($translate-&gt;_('Téléphone'))
-&gt;setRequired(true)
-&gt;addFilter('StripTags')
-&gt;addFilter('StringTrim')
-&gt;addValidator($emptyValidator);

}

$submit = new Zend_Form_Element_Submit('valid');
$submit-&gt;setAttrib('id', 'submitbutton')
-&gt;setLabel($translate-&gt;_('Enregistrer l\'annonce'));

 $this-&gt;addElements(array($id, $email,$password, $password_verification, $sex, $name, $surname, $address, $zip_code, $city, $phone, $submit));
}
}
?&gt;
</pre>
<p>Dans le prochaine tutorial, nous verrons comment mettre en application tout ce que nous avons vu précédemment dans un &laquo;&nbsp;CRUD&nbsp;&raquo; (Create Read Update Delete) qui illustrera l&#8217;utilisateur du design-pattern MVC, Zend_Db, Zend_Form, Zend_Validate et Zend_Layout.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexandre-julien.com/php/zend-framework-php/zend-framework-tutoriel-4-creation-de-formulaire-et-validations-avec-zend_form-et-zend_validate/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/9 queries in 2.135 seconds using disk: basic
Object Caching 1045/1059 objects using disk: basic

Served from: www.alexandre-julien.com @ 2012-02-18 13:30:39 -->
