[Demo] Mur facebook conçu avec Symfony2

Your ads will be inserted here by

Easy Plugin for AdSense.

Please go to the plugin admin page to
Paste your ad code OR
Suppress this ad slot.

Demo facebook réalisé avec Symfony2

>>> Voir la démo <<<

Introduction

Il m’est arrivé de lire, sur des forums, des messages de personnes se demandant comment utiliser des requêtes Ajax avec Symfony2.

Il n’y a bien évidemment aucune difficulté à partir du moment où l’on a bien compris les principes de fonctionnement du MVC.

Je me suis amusé à expérimenter et à réaliser une petite application de ce genre, le mur facebook a des principes de fonctionnement fortement axés sur des scripts JS et des requêtes (asynchrones) Ajax.

Voici donc en version démo, l’application installée (pour le moment) sur mon petit serveur virtuel ‘VPS’.

Environnement et technologies

L’application tourne sur une debian 6 avec apache 2.2, php 5.3.3, les extensions nécessaires pour le bon fonctionnement de Symfony2 dont Apc cache, MySQL.

les technologies utilisées pour la réalisation de cette démo :

* Symfony2 beta1 (avec twig et Doctrine2)
* JQuery 1.6.1
* Elastic (extension JQuery)
* TimeAgo (extension JQuery)

Your ads will be inserted here by

Easy Plugin for AdSense.

Please go to the plugin admin page to
Paste your ad code OR
Suppress this ad slot.

A noter que plusieurs modifications ont été nécessaires concernant TimeAgo, principalement, « comparer ce qui est comparable ».

A la base, cette extension comparait la date serveur d’un « post » à une date client (l’utilisateur final), ce qui revient à comparer ce qui n’est pas comparable.

Idéalement, il nous faut comparer une date serveur à une autre date serveur mais à laquelle il faut tenir compte de la date client (l’utilisateur final), tout cela sans non plus surcharger le serveur à faire des requêtes ajax afin de récupérer sans arrêt la date serveur, c’est pourquoi j’applique tout simplement une différence entre la date serveur et la date client (au chargement de la page uniquement) qui sera exploitée pour ré-ajuster le calcul par TimeAgo, ainsi, la différence affichée par TimeAgo sera cohérente quelque soit l’endroit ou se trouve l’utilisateur final.

Ensuite, il suffit à twig d’exprimer sous quel format afficher la date, pour être conforme à TimeAgo, il suffit d’utiliser le filtre Date() de twig avec la constante exploitant le format demandé c’est à dire l’ISO 8601.

Bien évidemment, la date serveur est servie un peu en avance par rapport à la date client, mais qu’importe, je n’ai nul besoin de comparer au millième près, ni même à la seconde près et surtout pas au dépend des performances serveur. ;)

L’extension Elastic, quant à elle, permet d’ajuster la taille des champs de formulaire dynamiquement.

En conclusion

La démo est un exemple d’application facilement réalisable avec Symfony2, Doctrine2 et twig.

Après ces quelques mois, d’utilisation de Symfony2, je me rend compte que développer avec le framework est un réel plaisir, sans compter qu’il est plus simple et rapide à prendre en main que la version 1, beaucoup plus souple ce qui nous incite à réaliser les choses les plus folles avec plus de simplicité.

Vive Symfony 2 !!!

Tags: , , , ,


1 commentaire pour le sujet “[Demo] Mur facebook conçu avec Symfony2”

  1. luis :

    please can you post the code on github?
    i am interested in writing and testing this bundle you have made

    thanks for contributing to the community in this way.

Laissez un commentaire :

*


created By ooyes.net