Faisons un peu de référencement avec symfony

Tout site internet qui se respecte et qui veut atteindre un trafic correct doit effectuer un travail sur son SERP.

Symfony étant un Framework et non un CMS on ne trouve pas énormément d’informations concernant le SEO. Cependant pour quelques sites que Lexik a lancé récemment nous nous sommes penché un peu sur l’optimisation de notre référencement.

< !

Attention il ne s’agit la que de quelques conseils primaires rien de bien révolutionnaire. Prétendre ressortir premier sur Google en quelques lignes et serait un pure escroquerie.

Colonnes de recherche perso dans le filter de l’admin generator, avec Doctrine

Comment faire pour filtrer l’affichage dans l’admin generator lorsqu’on a à faire à un champs qui n’est pas dans la table considérée ?

Un exemple ici : j’ai des utilisateurs, avec la table User, mais j’ai aussi une table sfGuardUser.

Ma table User contient les infos globales de mes utilisateurs, alors que la table sfGuardUser contient les informations d’identification et permet également de récupérer les infos sur les permissions, les groupes, etc.

Voilà le problème : j’ai dans le listing de mes utilisateurs ajouté la colonne « Administrateur ? », indiquant si l’utilisateur est admin ou non (vous l’aurez compris…), pour cela il m’a suffit de rajouter la méthode getIsAdmin() dans ma classe User.class.php (lib/model/doctrine/User.class.php), et le champs is_admin dans le generator.yml de mon module user dans le backend (apps/backend/modules/user/config/generator.yml). (cf jobeet n°12)

Schema.yml Doctrine, Bonnes pratiques, Convention de nommage et fonctions magiques

On s’est rendu compte ici qu’il y avait pas mal de questions en rapport avec le schema.yml qui ressortaient régulièrement.

Le schema.yml est généralement trop vite oublié. C’est facile à faire, ça génère la base sans trop se poser de questions, et puis on l’oublie… Alors que le schema.yml est certainement le fichier le plus important d’une application Symfony.

Je vais donc essayer de regrouper dans ce post les questions auxquelles on répond généralement par « Regardes dans ton schema.yml » où « Comment est ce que tu l’as défini dans ton schema.yml ? ».

Notamment au niveau des définitions des relations et les méthodes magiques qui en découlent.

Petit système de vote en AJAX

Le système que je vous propose est assez simpliste : il s’agit d’un vote type « j’aime / j’aime pas ».

On dispose d’un ensemble d’éléments (ici des messages) que l’on nous propose de noter.

Dans une première étape, le principe est de créer le système de vote, dans une deuxième étape on limitera les votes : un visiteur ne peut voter sur un élément qu’une fois par jour.
(Attention, ne pas pas oublier d’ajouter les include et use_javascript dans le layout de votre appli)

Simuler un loader pendant l’exécution d’une tâche

J’ai parlé il y a deux semaines de la méthode que l’on pouvait utiliser pour créer des tâches dans symfony et la façon de les alimenter dynamiquement : créer des tâches avec symfony.

Il serait maintenant intéressant de pouvoir l’utiliser dans une application et également de pouvoir suivre l’évolution de notre tâche.

Symfony et les tâches

Pour un projet récent j’ai du implémenter un script qui devait insérer des utilisateurs dans la base d’un projet symfony. Afin de conserver l’avantage des objets et de leur validator je n’ai pas effectué un script à base de ‘INSERT INTO’ mais j’ai bel et bien créé ma propre tâche.
Je ne vais pas dans cette article vous parler de la façon de créer les tâches pour cela je vous renvoie vers le cookbook aucune excuse pour ne pas le lire, il a été traduit en français mais je vais vous parler de la façon dont je l’ai implémenté dans mon application.

Il s’agit donc d’un projet très simple listant des profils d’utilisateur pour lesquels on spécifie des dates d’inscription à une option.

Internationalisation et formulaire avec Symfony

Aujourd’hui on va traiter des formulaires et de l’internationalisation. Une des grandes fierté de Symfony 1.2 est l’internationalisation et les formulaires.  Vous avez  eu droit à leur chapitre dans les jobeet. En revanche lorsque l’on veut  coupler les deux, les choses se compliquent un peu et c’est bien là l’intérêt de notre métier. Le but de cet article n’étant pas d’expliquer une nouvelle fois le fonctionnement des formulaires ou de l’I18N, vous comprendrez que je survole certains points. Je vous renverrez simplement ici pour les formulaires et ici pour l’I18N .