Symfony : connecter avec MongoDB et Elasticsearch

symfony-mongodb-elasticsearchSymfony permet à l’aide de bundle, de s’implémenter facilement avec MongoDB et Elasticsearch.

Le principe dans l’exemple qui suit, est une application web Symfony qui fonctionne avec une base maître MongoDB.
Cette base MongoDB synchronise régulièrement certaines de ses données dans Elasticsearch qui sera responsable de la recherche.

Symfony interroge ensuite Elasticsearch afin d’obtenir des résultats de recherche, qui lui renvoie les id des objets MongoDB afin d’aller chercher l’information brute dans la base maître.

Lire la suite

Créer une extension Twig

Logo TwigIl peut arriver d’avoir besoin d’une fonctionnalité qui n’est pas prévu par le système de template Twig.
Heureusement, créer une extension Twig au sein d’un projet Symfony2 est très simple.
Dans l’exemple ci-dessous, nous allons créer une extension qui nous renverra la classe d’un objet.

Tout d’abord il faut créer l’extension, par exemple dans le dossier AppBundle/Twig/

Lire la suite

Convention de code PHP

Logo PHPPouvoir relire le code écrit par une autre personne est très important, de même que tout le monde doit pouvoir lire votre code facilement. Bien sur si personne n’est amené à parcourir votre code vous pouvez faire comme bon vous semble.

Mais l’idée générale est qu’en lisant le code source d’un projet, on doit avoir l’impression que c’est la même et unique personne qui a tout écrit. Et de la même façon entre les différents projets. Cela aide à lire et à comprendre plus rapidement le contenu qui est écrit.

C’est surtout important dans le travail collaboratif et le maintient des sites/applications.

Cette idée est présente dans de nombreux langages, nous allons voir ici comment ça se passe pour le PHP.

Lire la suite

Twig : introduction au système de template de Symfony2

Logo TwigTwig est un système de template pour PHP créé par Fabien Potencier.
Il est par défaut intégré au Framework MVC Symfony2, mais il est possible de l’utiliser à part, avec un autre framework, ou avec une simple page PHP.

Vous pouvez l’installer avec Composer ou le télécharger directement depuis le repository sur GitHub.

On va faire ici un exemple simple d’utilisation avec un fichier PHP vide.

Lire la suite