Zend Framework

Zend_Translate, gettext et les pluriels

Zend_Translate gère les pluriels, mais la documentation officielle donne peu de détails sur la manière de procéder avec l'adaptateur gettext. Pour vous faire gagner un peu de temps, voici ce que vous devez savoir pour une traduction Française.

Dans votre fichier .po, vous devez ajouter dans l'entête :

"Plural-Forms: nplurals=2; plural=n>1;\n"

Ensuite, sur les termes où vous avez besoin du pluriel, vous devez utiliser la syntaxe suivante :

Passez à try_files

Pour rediriger les requêtes qui pointent sur un fichier ou un répertoire qui n'existe pas vers /index.php, avec Nginx et Zend Framework on utilise traditionnellement :

if (!-e $request_filename){
  rewrite ^.*$ /index.php break;
}

Mais ce n'est pas optimal car il est recommandé d'éviter if.

Zend_Test : expressions assertQuery

Zend_Test fournit une série de méthodes commençant par assertQuery qui permettent d'examiner le DOM de la réponse. La syntaxe des requêtes est identique à celle utilisée pour les sélecteurs CSS. Voici quelques exemples d'utilisation.

Zend_Test : récupérer les messages d'erreur d'un formulaire

Lors d'un test unitaire, il peut arriver que la soumission d'un formulaire échoue. Cela peut être du au passage via POST d'une valeur qui n'est pas considérée comme valide par le formulaire. Pour identifier la source du problème, vous êtes obligé d'examiner la réponse HTML pour retrouver d'éventuels messages d'erreurs, ce qui n'est pas très pratique. Le mieux ce serait de retrouver l'objet form qu'on a passé à la vue. C'est possible en passant par le ViewRenderer :

<?php
$vr 
Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$view $vr->view;
$form $vr->form;
?>

Vous pouvez ensuite utiliser la méthode getMessages pour récupérer les messages d'erreur et les afficher sur la console :

<?php
$this
->assertXXX(..., print_r($form->getMessages(), true));
?>

Zend Framework : sélecteur de devises

En ces temps de difficulté de la zone Euro, je vous propose un composant qui colle à l'actualité : un sélecteur de devise.

Le sélecteur de devises

Le code est très similaire au sélecteur de pays que je vous avais proposé dans un précédent article. En fait, c'est Zend_Locale qui fait le plus gros du travail, c'est lui qui fournit la liste des devises.

Zend_Form : disable ou disabled ?

Je viens de tomber sur quelque chose d'assez bizarre, à tel point que je me demande si je suis bien réveillé ce lundi matin. J'ai un vilain bogue que j'essaie d'éradiquer pour bien commencer ma semaine. Le problème concerne une case à cocher. C'est un des éléments de formulaire le plus mal foutu car il n'est soumis que lorsqu'il est coché. Pour pallier à ce problème, l'aide de vue formCheckbox ajoute un champ caché juste avant l'input de de type checkbox avec la valeur correspondant à la case décochée. Ce qui nous donne l'HTML suivant :

Casse du nom des fichiers des ressources Zend_Application

Attention si vous écrivez une ressource pour Zend_Application dérivée de Zend_Application_Resource_ResourceAbstract. Le nom de la ressource et le nom de fichier ne doivent pas suivre la notation CamelCase car sinon votre ressource ne sera pas trouvée sur une plateforme où les noms de fichiers sont sensibles à la casse. Vous rencontrerez une exception du type Zend_Application_Bootstrap_Exception avec le message Resource matching "..." not found.

Zend_Form : ajouter du code HTML

Ah Zend_Form, qu'est ce que tu peux être compliqué ! Vous devez déjà avoir rencontré ce problème : ajouter du code HTML en plein milieu de votre formulaire.

Traduire ses URL avec Zend_Controller_Router_Route

Je n'aime pas mélanger le Français et l'Anglais dans mon code. Mes noms de variables, mes noms de table, mes noms de contrôleur et d'actions sont donc toujours systématiquement en anglais. Le problème avec cette approche, c'est que du coup mes URL sont également en anglais.

Etiquettes:

Zend Framework : utiliser application.ini pour stocker vos paramètres

Comme vous le savez sans doute, le Zend Framework utilise un fichier de configuration nommé application.ini pour stocker ses paramètres. Vous pouvez l'utiliser également pour vos paramètres personnalisés.

Pour cela vous pouvez créer des entrées supplémentaires dans le fichier .ini. Pour éviter une collision avec d'autres paramètres, il est conseillé d'utiliser un préfixe. Vous pouvez par exemple utiliser l'espace de nom de votre application.

Etiquettes:

Pages

Subscribe to RSS - Zend Framework