Dévelopeur d'applications web

Blog du dévelopeur web écrit en rythme du zouk

Ce site ne sera plus alimenté de contenu après août 2014. Tous les nouveaux articles seront redigés pour www.waitingforcode.com

La règle d'or de sécurité sur le web consiste à ne jamais faire confiance à un tiers. Si l'on ne respecte pas cette condition, une nouvelle attaque qu'on va découvrir risque d'endommager notre application. Il s'agit du web parameter tempering. Dans la première partie de l'article on verra de quoi on va parler. Ensuite, dans la seconde partie, on montrera comment une application web codée sans imagination, peut mettre en danger même de plus beaux business models. En dernier, on présentera ... Plus →

01-07-2014 00:00

Le contexte permet de comprendre pas mal de choses, également en développement. Certaines situations exigent sa présence pour pouvoir déterminer la stratégie à prendre. C'est d'ailleurs le mot-clé qui définit le design pattern de cet article. Il s'agira bel et bien du patron de conception appelé strategy (stratégie). Son but consiste à créer une surcouche qui va être utilisée par le contexte dans la réalisation d'une opération. L'opération à réaliser sera ... Plus →

01-07-2014 00:00

Le contrôle sur le code ressemble souvent à la promenade avec son chien. Il suffit de lui relâcher un peu sa laisse afin qu'il soit capable de faire des dégâts (nous renverser, faire peur ou mordre quelqu'un). Dans le développement c'est pareil. Plus de liberté on laisse aux traitements, plus de possibilités qu'on rencontre des bugs. Une approche qui vise à limiter les dégâts causés par l'application s'appelle la programmation défensive. Cette approche sera sujet de l'article. Au ... Plus →

16-06-2014 06:37

Les expressions régulières sont un outil très puissant dans le développement. Sans elles, il serait quasiment impossible d'analyser un document ou de vérifier la cohérence de certains modèles des mots comme URLs. Cependant, elles ne sont pas sans failles et doivent être utilisées correctement pour apporter un réel gain à l'application. A travers cet article on verra le fonctionnement des expressions régulières. Tout d'abord on se concentrera à le décrire. On abordera alors la notion ... Plus →

Spring par pratique : Tests unitaires sur Maven

Maven permet, comme Apache Ant, d'exécuter les tests unitaires et de consulter ses résultats sous un format souhaité (fichier ou output directemenet dans la console). Cependant, quelques problèmes peuvent se produire lors du transfert des tests sous Maven. On les découvrira à travers cet article. Comme on l'a indiqué dans l'article consacré au transfert d'un projet sur Maven, Maven impose une structure propre à la suite des tests automatiques. Juste au titre d'un bref rappel, les tests ... Plus →

Maintenant, quand on connaît les bases de Maven, on peut s'occuper d'organiser notre projet selon l'architecture standard du Maven. Différences dans la structure Apache Ant, sans son extension Ivy, ne permet pas gérer les dépendances par un fichier de configuration. On est obligés de télécharger les packages et de les placer dans le classpath (/lib dans notre structure). C'est là ou Ant va aller chercher les packages lors de la compilation. Sous Maven on n'a plus besoin de stocker les ... Plus →

Moi

Développeur d'applications Internet et journaliste passionné par l'adjectif français. Un aigle polonais orienté vers la progression, volant très haut et écoutant du zouk après les matches du foot français.

Vous appréciez mon travail ?

Pour contribuer au développement de ce site, ou pour remercier pour des articles rédigés, vous pouvez faire un don.

Un conseil Symfony2

Comment personnaliser l'affichage des champs du formulaire ?

Pour personnaliser l'affichage des champs du formulaire sous Symfony2 on doit surcharger le paramètre nommé templating.helper.form.class. Par défaut il s'agit de la classe Symfony\Bundle\FrameworkBundle\Templating\Helper\FormHelper. Le code se présente ainsi :

<?xml version="1.0" encoding="UTF-8" ?>
  <container xmlns="http://symfony.com/schema/dic/services"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
    <parameters>
      <parameter key="templating.helper.form.class">Frontend\FrontBundle\Helper\FormHelper
    </parameters>
  </container>
La classe surchargée va, avant d'afficher le champ, faire appel à la méthode setTheme(). Tout cela pour déterminer quel thème doit utiliser Symfony2 pour le rendu du formulaire (champ text, boutons radio etc.). Le code de cette FormHelper se présente ainsi :
namespace Frontend\FrontBundle\Helper;

use Symfony\Component\Templating\Helper\Helper;
use Symfony\Component\Templating\EngineInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\Form\Exception\FormException;
use Symfony\Component\Form\Util\FormUtil;
use Symfony\Bundle\FrameworkBundle\Templating\Helper\FormHelper as ParentHelper;

class FormHelper extends ParentHelper
{
    protected $engine;

    protected $varStack;

    protected $context;

    protected $resources;

    protected $themes;

    protected $templates;

    protected function renderSection(FormView $view, $section, array $variables = array())
    {
        // if new theme is set (for exemple for override form templates)
        if(isset($variables['attr']['theme'])) $this->setTheme($view,  $variables['attr']['theme']);
        return parent::renderSection($view, $section, $variables);
    }

}
Afin de personnaliser un champ du formulaire sous Symfony2 il faut passer un paramètre theme qui appelera la fonction setTheme. Voici un exemple :
// it will show the template located ad /app/Resources/views directory
echo $view['form']->widget($form['replyType'], array('attr' => array('theme' => array(0 => ':'))));
Pour voir comment on peut personnaliser ces champs, veuillez vous référer aux fichiers placés dans /vendor/Symfony/Bundle/FrameworkBundle/Resources/views/Form.