Tag: Symfony

Doctrine et son Behavior Geographical

edit-cut Retour un peu à la technique, mais n’oubliez pas, il vous reste seulement jusqu’à demain pour gagner une BD.

En ce qui nous concerne, avec les annonces faites lors de la dernière Symfony Conference Live, il faut bien commencer à se lancer dans Doctrine. Et c’est l’occasion de découvrir petit à petit cet ORM qui change beaucoup de Propel, pas toujours en bien à mon goût, mais il y a quand même des choses très bien pensées.
En parcourant la doc, je suis donc tombé sur un behavior que j’ai trouvé fort intéressant: Geographical.

Je me suis donc laissé tenté par un test de celui-ci!

Lire la suite

Symfony: Personnaliser le nom du fichier lors d’un upload avec sfWidgetFormInputFileEditable

system-software-update On emploie tous je pense, assez couramment maintenant, le widget sfWidgetFormInputFileEditable qui permet de rajouter quelques fonctionnalités à un widget d’upload classique, en l’occurrence visualisation et suppression. Le souci que j’ai rencontré récemment, c’est par contre la personnalisation du nom du fichier ainsi généré.

En effet, par défaut celui-ci est une empreinte sha1 généré aléatoirement, ce qui convient pour la majeure partie des cas, mais parfois ne suffit pas. Mais là encore Symfony étonne par le mécanisme mis en place pour contourner cette problématique, encore faut-il le savoir malheureusement.

Lire la suite

Symfony: Faites passer le message

accessories-text-editor Petit retour sur Symfony pour débattre d’un sujet que je traine dans mes cartons depuis le début de ce blog quasiment mais dont je n’avais jamais vraiment eu le temps de parler: La communication entre l’application et l’utilisateur.

Je profite donc de n’avoir pas de sujets brûlants à vous faire part, pour attaquer ce billet.

En effet, c’est souvent un détail qu’on oublie très vite et il n’y a qu’à voir les maquettes qu’on reçoit pour nos devs, je pense que les bon élèves qui pensent à faire un petit mockup d’un message utilisateur sont pas forcément légions. Et pourtant, dans une optique purement IHM, l’application se doit de communiquer avec l’utilisateur pour montrer qu’il comprend bien la requête.

Difficilement d’imaginer d’appuyer sur un bouton et ne pas savoir si l’application a bien saisi et effectué notre demande. Et pourtant ce n’est pas rare de croiser encore de telles applications même si la tendance s’est inversée depuis l’avènement du deux point zéro.

Le souci, c’est que c’est souvent un peu fastidieux à mettre en place. Heureusement, nous on utilise Symfony et il va nous simplifier les choses pour peu qu’on pose les bonnes bases.

Lire la suite

Développement web: Les bons plans de la semaine #6

system-software-update Une nouvelle semaine qui prend fin, mais qui aura été assez pauvre en technique car chargée en boulot. On essaiera de faire mieux la prochaine fois.

Pour l’heure, voici les bons liens de la semaine avec comme d’habitude, beaucoup de ressources anglophones. J’en profite au passage pour signaler que pour ceux qui ne sont pas à l’aise avec la langue de Shakespear, que je suis ouvert à toute propositions d’adaptations de ressources anglophones en français, du moment que ca traite d’un sujet sur le développement web au moins.

Allez, c’est parti, à vos souris:

  • Support Symfony dans NetBeans
    NetBeans, le principal concurrent de Eclipse dans le monde des IDE libre a annoncé que sa prochaine version aurait le support natif de Symfony (le choix de symfony ayant été voté par la communauté). C’est beau! A quand, la même chose pour Eclipse?
  • Open Web Tools Directory
    Voila ce qu’on peut faire avec canvas et du javascript. Le flash n’a qu’a bien se tenir.
  • Hébergement de projets open source (via spawnrider)
    Ca y est, le géant du développement en France, se lance dans un projet à la sourceforge pour les projets open sources et francophones. Belle initiative!
  • Slickmap CSS
    Voilà, une petite feuille de style qui permet de donner un style très classe à une liste (<ul>) représentant un sitemap. A voir la démo sur le site.
  • Mieux rentabiliser adsence
    Bon tout le monde est censé connaitre SmashingMagazine maintenant. Mais cet article étant si bien écrit et si instructif que je ne pouvais pas l’éviter.
  • Kit de démarrage de plugin jquery
    Une idée tout bête mais qu’elle est bonne. Vous pouvez depuis cette interface créer le squelette de votre plugin, en 2/3 mouvements.
  • Zoom d’image en JS
    Et oui certains code encore à l’ancienne, en tout cas voici un zoom d’image qui peut trouver plusieurs applications.
  • Parcourir un menu avec son clavier
    Un petit code jquery qui permet de naviguer dans un menu avec les touches haut/bas de votre clavier. Un peu plus intuitif que Tab pour le coup.
  • L’avenir du développement HTML/CSS
    Et oui, bientôt voilà ce qu’il faudra savoir manier pour pondre des sites dernières générations à base de HTML5/CSS3.
  • Le site de la semaine
    Maintenant chaque semaine, je vais essayer de trouver un site entier qui peut s’avérer utile, et le premier gagnant c’est un site qui recense les bonnes et les mauvaise pratiques dans le web développement. Avec un design sympathique, il mérite le détour, tant vous allez y apprendre quelque chose ;)

SourceForge Community Choice Awards: Symfony et le reste

applications-internet Aujourd’hui retour d’un petit break de 5j, donc pas grand chose de très technique à dire. Du coup, je vais rebondir sur la grosse actu de la semaine dernière concernant Symfony: Après les nominations lors du SourceForge Community Choice Awards, Symfony a été nommé dans 3 catégories:

  • Meilleur projet
  • Meilleur outil pour développeur
  • Meilleur projet dans le monde de l’entreprise

Il faut donc votez dès maintenant si ce n’est pas déjà fait! Personnellement, comme à mon habitude, j’en ai profité pour faire un petit tour de la « concurrence » et j’ai même trouvé des projets que je connaissais pas, mais qui me semble très intéressant. Petit tour d’horizon.

Lire la suite

Symfony: Relation many-to-many sur la meme table avec Propel

system-search Beaucoup de boulot pour cette courte semaine (je suis en week end, ce soir :D) du coup, je n’ai pas eu le temps de faire le billet Symfony du mardi! Ca tombait bien en même temps, car je n’avais pas énormément d’idées.
Finalement, j’ai trouvé un petit quelque chose pour subvenir à vos besoins de nouveautés permanents. On va parler d’une petite faiblesse dans Propel, que je n’ai pas encore pris le temps d’analyser dans toute sa profondeur mais qui reste assez gênant: La gestion des relations many-to-many sur une même table.

Lire la suite

Symfony: Domptez les filtres de l’admin generator

system-run Un détail qui m’a toujours titillé dans le fabuleux admin generator de symfony, c’est le bloc de filtre. Le concept est bien sûr génial. Sans rien faire, vous avez déjà la possibilité de filtrer vos résultats, un gain de temps énorme, surtout quand on a un client qui sait ce qu’il veut. Mais voilà, même si depuis la 1.2, le layout de l’admin generator par défaut a subit un lifting qui le rend beau de série:
Image 56

Lire la suite

Traduire l’admin generator symfony

computer Petit billet Symfony du mardi, principalement pour combler un manque que j’ai pu voir dans google voir même dans la doc Symfony sur l’admin generator.

En effet, on y lit que l’admin generator est i18n ready, en gros que le système de traduction est en place, qu’il ne reste plus que le fichier xliff (le format utilisé pour la traduction dans Symfony) à faire et à placer dans apps/backend/i18n mais aucune ligne qui semble indiquer que les plugins sfPropelPlugin et sfDoctrinePlugin intègre déjà les traductions de la plupart des langues. Or c’est le cas!

Lire la suite

Personnaliser le code HTML d’un widget symfony

system-software-update Comme dit le proverbe, billet du mardi, billet symfony… Bon on va dire que c’est un nouveau proverbe mais pour le coup, on va continuer cet adage avec au programme aujourd’hui les possibilités offertes par symfony pour modifier le code HTML construit par ses fameux widgets de son système de formulaire.

Plus mon nombre de projets défile sous Symfony et plus j’essaye d’éviter de faire des choses hors framework, mais plutôt de voir comment on pourrait le régler via le framework. Avant, quand un problème se présentait, j’optais souvent pour une solution alternative quitte à mettre de côté pour une petite fonction la philosophie Symfony. Mais voilà, je l’aime moi, cette philosophie et au fur et à mesure, j’ai décidé de mettre de plus en plus les mains dans la cambouis et les yeux dans le code source, pour résoudre mes problèmes.

Lire la suite

Dailymotion confirme ses bonnes intentions

system-run C’est pas trop mon genre de blogué le soir mais l’info vallait bien ça. Dailymotion a encore grimpé dans mon estime (j’avoue ça doit leur faire une belle jambe). Le jour où je suis tombé sur ce site, j’ai de suite adhéré et j’ai vite laissé tombé youtube. Je sais pas question de feeling. Quand Fabien Potencier a annoncé qu’ils tournaient désormais sous symfony, je me suis dis que finalement, j’avais fait le bon choix.

Alors quand j’ai appris tout à l’heure via Nicolas Perriault sur twitter qu’ils lançaient un projet de visualisation de vidéo dans un format ouvert via le nouveau tag HTML5 <video> (optimisé pour Firefox 3.5 beta pour l’instant) je me suis dis que ça vallait bien un petit billet.

Certes ce n’est pas encore la fin du flash, qui aura eu le mérite de porter la vidéo sur le web à grande échelle mais c’est un premier pas surtout avec un site comme dailymotion aux commandes.

Affaire à suivre de très près!

PHVsPjxsaT48c3Ryb25nPndvb19hZHNfcm90YXRlPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzE8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTEuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV8zPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS0zLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzQ8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTQuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzE8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8zPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzQ8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hbHRfc3R5bGVzaGVldDwvc3Ryb25nPiAtIGN1c3RvbS5jc3M8L2xpPjxsaT48c3Ryb25nPndvb19hdXRvX2ltZzwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY29udGVudF9hcmNoaXZlczwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY29udGVudF9ob21lPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fZmF2aWNvbjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlZWRidXJuZXJfdXJsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZ29vZ2xlX2FuYWx5dGljczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2xvZ288L3N0cm9uZz4gLSBodHRwOi8vd3d3LmFtaWNhbGVtZW50LXdlYi5uZXQvd3AtY29udGVudC93b29fdXBsb2Fkcy8zLWxvZ28ucG5nPC9saT48bGk+PHN0cm9uZz53b29fbWFudWFsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tLzwvbGk+PGxpPjxzdHJvbmc+d29vX25hdl9leGNsdWRlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fcmVzaXplPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3J0bmFtZTwvc3Ryb25nPiAtIHdvbzwvbGk+PGxpPjxzdHJvbmc+d29vX3RoZW1lbmFtZTwvc3Ryb25nPiAtIFR5cGViYXNlZDwvbGk+PGxpPjxzdHJvbmc+d29vX3RodW1iX2hlaWdodDwvc3Ryb25nPiAtIDEwMDwvbGk+PGxpPjxzdHJvbmc+d29vX3RodW1iX3dpZHRoPC9zdHJvbmc+IC0gMTAwPC9saT48bGk+PHN0cm9uZz53b29fdXBsb2Fkczwvc3Ryb25nPiAtIGh0dHA6Ly93d3cuYW1pY2FsZW1lbnQtd2ViLm5ldC93cC1jb250ZW50L3dvb191cGxvYWRzLzMtbG9nby5wbmc8L2xpPjwvdWw+