Tag: Symfony

Développement Web: les bons plans de la semaine #16

newspaper Petit décalage à nouveau, mais lundi a été un jour de reprise donc forcément un jour très (trop?) long. Mais pas d’inquiétude, voici la petite sélection qui remet les pendules à l’heure que vous retrouverez à nouveau tous les lundis!

Malgré une rentrée très intense, je trouve que la qualité des billets trouvés sur mon parcours n’est pas supérieur à ce que je pouvais trouver pendant la trêve estivale. Comme quoi, quantité ne rime vraiment pas avec qualité. Mais il y a quand même des choses très intéressantes.

Lire la suite

Actualité Symfony, Doctrine et Propel

journal-cafe-netbook Comme souvent après la rentrée, on assiste au débarquement des nouvelles versions en tout genre, comme Apple avec Snow Leopard ou Karmic Koala chez Canonical (bon ok eux c’est tous les mois d’octobre :p).

Et forcément, chez les développeurs Symfony, ca frétille d’impatience car chaque jour nous rapproche de la sortie de la version 1.3 de notre framework PHP préféré, dernière release majeure avant le passage en 2.0 (oué pour le coup, ils sont pas encore à la mode).

Je me suis dis que ca valait le coup de faire un petit tour d’horizon des nouveautés attendues (au moins par moi) que se soit Symfony, Doctrine et même Propel:

Lire la suite

Doctrine: quelques petits secrets

doctrine-secret Oui, je commence à parler de Doctrine de plus en plus vu que je commence à l’utiliser à grande échelle au boulot. Et il y a un détail où j’ai encore du mal, c’est l’opacité de cet ORM comparé à son prédécesseur dans Symfony, Propel.

On se rappelle tous (enfin je parle au passé, mais Propel n’est pas mort hein :p) qu’on avait tout à disposition dans le BasePeer de notre modèle, les accesseurs, les modificateurs et quasi toutes les méthodes dont on pouvait avoir besoin. Avec Doctrine, la donne a changé, tant cet ORM est codé différemment.

On se retrouve du coup un peu perdu parfois, sans trop savoir ce qu’on peut utiliser. Et là, il faut bien sûr jeter un œil à l’API Doctrine. Mais on le sait tous, on a pas toujours le temps! Du coup, au travers de mes recherches, j’ai trouvé quelques petites méthodes que j’utilise régulièrement et dont je vais vous parler.

Lire la suite

Développement Web: Les bons plans de la semaine #11

computer Une nouvelle semaine qui commence. En espérant que ce billet soit le dernier sous ce thème graphique! D’ailleurs n’oubliez pas que vous pouvez encore donner votre avis sur les modifications que vous aimeriez voir sur amicalement-web.

Lire la suite

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

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+