Le blog de Fabien Pennequin
Dans un projet Symfony, comment gérer la validation d’un formulaire lorsqu’il est dans un composant ? C’est la question que l’on m’a posé cette semaine la semaine dernière (le temps passe vite…).
Tout d’abord, qu’est-ce qu’un composant dans Symfony ? Il s’agit en quelque sorte d’une action qui est réutilisable entre les différents modules de l’application. A la différence des “partials”, qui sont “que” des templates, les composants contiennent de la logique : le plus souvent, récupérer un ou plusieurs modèles.
Pour revenir à la question, le problème n’est pas de gérer la validation à proprement parler, Symfony va s’en occuper grâce au forms framework mais plutôt de savoir où envoyer le visiteur une fois le formulaire soumis et comment, à la fin, le rediriger sur la page initiale, celle où il a rempli le formulaire.
Lorsque l’on développe un projet, on a (presque?) toujours un certain nombre de paramètres propres à ce dernier. Cela peut-être le nom du site internet, la clé d’accès à un WebService ou encore la taille des miniatures à générer. De façon générale, il s’agit de tous ces paramètres communs à la fois au frontend et au backend du projet.
Tout bon développeur qui se respecte, je ne laisserai pas ce genre de paramètre perdu dans la logique métier. Tout d’abord parce que ça n’a absolument rien à faire là et ensuite parce qu’il ne serait pas facile de modifier le paramètre plus tard. Une bonne pratique est donc de créer un fichier à part pour stocker ces paramètres…
Il y a quelques jours, à l’Université, dans le cadre du TP de “Flots de Multiflots dans les Réseaux”, j’ai dû stocker et manipuler des graphes en implémentant les algorithmes de Dikjstra, de Bellman-Ford, de Johnson, de Floyd-Warshall afin d’obtenir un plus court chemin.
Les graphes c’est sympa mais je m’en méfie toujours, peut-être parce qu’en licence 3 j’ai dû perdre quelques cheveux lorsque j’ai coder 2-3 algorithmes, relativement simples par rapport à ceux cités avant, sur les graphes. Cette année pour ne pas me faire avoir, j’ai décidé d’utiliser des tests unitaires afin vérifier mon code. C’était en plus une bonne occasion pour découvrir un framework de tests en C++
Suite la récente mésaventure que j’ai eu avec mon MacBook, j’ai dû ré-installer un environnement AMP sur mon ordinateur. L’occasion pour moi d’écrire ce billet et de présenter un outil génial pour Mac…
J’en ai déjà parlé, la version de PHP fournie avec Mac OS X Leopard est assez… épurée : pas de GD ou de PEAR par exemple et la compilation d’extensions ne marchent pas (cf. mon billet sur Runkit). Pour une utilisation (très?) basique de PHP cela suffira mais si vous voulez, par exemple, manipuler des images il faudra utiliser une autre solution…
Jeudi, sans crier gare, mon MacBook a décidé de ne plus démarrer. L’écran de démarrage restait bloqué sur le logo d’Apple avec une roue de chargement qui tourne à l’infinie.
Ma première réaction a été de mettre le dvd d’installation de Mac OS X et de lancer une vérification du disque. Mauvaise surprise, il y a une erreur et l’utilitaire de disque n’arrive pas à la réparer. N’ayant pas plus d’information sur l’erreur, je redémarre mon MacBook en mode “console” et re-tente une vérification/réparation du disque cette fois avec la commande fsck. Ça échoue encore mais j’obtiens le nom de l’erreur : “Invalid sibling link”. Avec un autre ordinateur, je regarde sur Internet si une solution est possible. Apparemment, d’autres personnes ont déjà eu le problème et ont réussi à réparer le disque avec la commande fsck_hfs -r /dev/disk0s2 (où disk0s2 est l’identifiant de la partition). Je lance (plusieurs fois) la commande mais rien n’y fait, le formatage est inévitable…
C’est dans ce genre de situation où je suis bien content d’avoir activé TimeMachine, l’outil de sauvegardes de Mac OS 10.5. Le disque ne pouvant plus être monté, il m’était impossible de récupérer mes données via un autre ordinateur (avec le mode target) ou de ré-installer Leopard avec l’option “Archiver et Installer” qui, comme son nom l’indique, archive l’ancien système avant d’en installer un nouveau. La seule solution, à ma connaissance, était donc d’avoir fait une sauvegarde lorsque le système était encore opérationnel.
Moralité de l’histoire, TimeMachine ça peut vous sauver la vie vos fichiers !
C’est la bonne nouvelle de la semaine, la documentation de symfony est maintenant disponible au format pdf ! Je ne sais pas si il y avait une forte demande pour pouvoir la télécharger mais en ce qui me concerne ça toujours était un point gênant.
J’ai pris l’habitude de toujours télécharger la documentation des outils que j’utilise. L’intérêt ? La consulter même lorsque je n’ai pas de connexion Internet ou lorsque le serveur qui l’héberge est momentanément indisponible.
Voilà, maintenant je n’aurai plus besoin de récupérer les sources de la documentation sur le SVN de symfony, j’ai de jolis PDF
Il y a quelques jours, j’ai un peu bêtement mise à jour Adobe Flash Player, juste pour voir un site complètement en Flash. Aujourd’hui, je le regrette bien car il m’est maintenant impossible de faire une mise à jour de la galerie photos de mon site. Pourquoi ? Je ne sais pour quelle raison, Flash 10 casse tous les systèmes d’upload multiple qui utilise cette technologie. Mon site est bien sûr concerné puisqu’il utilise, dans la partie back-office, Fancy Upload.
Un petit tour sur le site officiel du projet et je m’aperçois qu’un correctif est disponible. Tout content, je me prépare à mettre à jour mon site sauf que… j’utilise encore Mootools 1.1 et que le correctif fonctionne avec Mootools 1.2.
Je serai bien passé à cette nouvelle mouture de mon framework javascript préféré mais les changements au niveau de l’API sont trop importantes et m’oblige à revoir tous les fichiers js de mon site. Il ne me reste alors plus qu’une solution, downgrader Flash Player…
Pas facile de passer de Flash 10 à Flash 9. Il faut désinstaller la version actuelle mais surtout trouver l’installer pour l’ancienne version. Ça c’est le plus dur car le site officiel d’Adobe ne propose que la dernière version, à savoir la 10e. Bon après quelques recherches, j’ai réussi à retrouver la version 9 sur le site de clubic. Pour ceux que ça intéresse voici la procédure pour downgrader Flash Player de la version 10 à la version 9 :
Bon ce n’est que solution provisoire en attendant de pouvoir mettre à jour mon site. Cela me permet ainsi de continuer à le mettre à jour tout en préparant la nouvelle version
Depuis que j’ai acheté un Mac, c’est-à-dire en 2006, j’utilisais CyberDuck comme client FTP. C’est, à priori, le seul client FTP gratuit et open source pour Mac. Son utilisation me semblait assez facile et il disposait de toutes les fonctionnalités dont j’avais besoin. Je n’étais pas très exigeant puisque je voulais juste pouvoir déposer des fichiers sur un FTP. Déjà à l’époque, je me souviens qu’il plantait de temps en temps, au début, d’après le développeur, c’était dû aux machines Intel. Au fil des versions, les plantages et bugs se sont montrés de plus en plus nombreux. Je ne parle même pas de la consommation mémoire et du temps d’exécution devenus insupportable. Au final, je m’étais résigné à utiliser un WebFTP…
Heureusement, en août, j’ai découvert ForkLift. Au début, j’ai pris la version d’évaluation de 15 jours. Quel bonheur ce logiciel ! Très fluide, aucun plantage et plein des fonctionnalités très intéressantes. Il permet par exemple de créer une archive d’un FTP complet. Bon, c’est un peu long pour un FTP volumineux mais c’est très utile quand on n’a pas d’accès SSH sur le serveur. Il est également possible de faire du transfert serveur à serveur, très sympa pour faire une copie complète d’un FTP vers une autre machine.
J’ai fini par acheter ForkLift en août dernier et depuis je suis toujours aussi content de mon achat
Petit bémol, le cache du logiciel est trop puissant, du coup on ne voit pas les éléments ajoutés par un autre logiciel. Heureusement, on peut désactiver le cache dans les paramètres…
Blogafab.com est le blog personnel de Fabien. Il est consacré au développement web, Mac OS X, les jeux vidéos et les séries tv.
Fabien est actuellement étudiant en Master Informatique à l'université de Valenciennes. A ses heures perdues, il s'occupe de Invision Board France et son propre site Smallville Site Web.
Commentaires récents