Symfony2 : Service Container

Voilà mon deuxième post qui entrera dans la catégorie des bonnes pratiques sur le framework Symfony2. Le Service Container est l’objet que vous utilisez probablement à outrance dans toutes les déclarations de Manager Symfony.

Comment déclare-t-on un Manager Symfony ?

1
2
3
4
services:
namespace.x.yManager:
class: Namespace\NameBundle\Manager\NameManager
arguments: [@service_container]

Si vous deviez déclarer un manager et que celui-ci devait être directement disponible depuis le « service container », vous le déclareriez de cette manière. Dans les arguments, vous indiqueriez les services à « injecter » au moment de la création. Vous pourriez alors atteindre ce manager de n’importe quel controller ou objet ayant accès au container, de cette manière :

1
$this->container->get(« namespace.x.yManager »);

Lire plus

Symfony2: Bonnes pratiques

Actuellement sur un projet où je dispose d’un peu plus de temps qu’en temps normal, j’essaye de faire un code impeccable. Mon but est donc de faire une liste des bonnes pratiques et des bonnes méthodes à avoir.

Les bonnes pratiques sur Symfony2\. Un 20/20 assuré !

Dans ce lot de bonnes résolutions, j’essaie également d’utiliser au maximum les fonctions embarquées par Symfony2 plutôt que d’utiliser à outrance des bundles.

Lire plus

Twig : render controller, le faux bon ami

Lors du stand’up du lundi matin, un des développeurs de la startup qui était en phase d’optimisation d’une plateforme fait en Symfony2, a eu la bonne idée de nous expliquer le fonctionnement de cette fonctionnalité Twig dont vous abusez probablement. Le render controller !

Le render ?

Qu’est-ce que le render ? Cela est simple, comme on dit… C’est comme le Port-Salut, c’est écrit dessus ! Ou presque… En tout cas, le render permet de générer le rendu de quelque chose. En l’occurrence, le problème ici, c’est lorsqu’on essaye d’afficher le rendu d’un controller dans un template.

Lire plus

Symfony2 : Gérer soit-même le cache

Le cache est présent partout dans l’informatique et heureusement d’ailleurs. Sans lui, les temps de traitement serai bien plus long ! À l’heure où tous les Framework digne de ce nom font appel à système de cache, pourquoi aurait-on besoin de gérer nous-même le cache ?

Le cache dans Symfony2

Dans Symfony2, on peut facilement mettre en place un système de cache. D’ailleurs si on voulait être exact, on dirait que Symfony possède propre système cache (app/cache/env/), et que l’on peut en plus plugger un système de cache au niveau du serveur (Apache, IIS, …). Ce cache est entièrement gérable et la mémoire est volatile. Dès lors que le serveur est redémarré le cache du serveur est supprimé.

Lire plus

Doctrine TimeStamp Error : Importer des tables SQL Server 2008

Comment importer une table SQL Server avec un champs Timestamp avec Doctrine ? Quand les tutoriels de-ci de-là ne suffise pas, il n’y a souvent qu’un moyen pour parvenir à ses fins… Mettre les mains dans le cambouis ! Aujourd’hui je vous propose une solution, qui je l’espère sera rapidement intégré par la Communauté en charge du développement de Doctrine, qui permette de créer des entités Symfony2 depuis une base SQL Server qui contiennent un champs de type Timestamp.

Qu’est-ce que le type Timestamp ?

Il me semble nécessaire de préciser quelques petites informations sur le type Timestamp. Je ne suis pas un expert MySQL mais des informations que j’ai pu croiser un peu partout, le Timestamp de MySQL ressemble à une date, ce qui le rend plus facilement convertissable. Or, le même type pour SQL Server est un peu plus subtile dans sa compréhension. Le documentation est disponible sur le Technet de Microsoft.

Type de données qui expose des nombres binaires à caractère unique générés automatiquement dans une base de données.
Intéressant… Et comment je fais pour dire à Doctrine de ne me convertir ça ? Je vous propose une solution pour détourner le problème…

Lire plus

PHP et comment décompresser une archive ZIP

Dézipper un archive ZIP

Unzip file in PHP

Aujourd’hui, lorsqu’on recherche comment décompresser une archive de type ZIP en PHP dans Google, on trouve en première position les fonctions d’extraction de la librairie PECL. Mais n’est-il pas possible de décompresser ce format standard sans devoir passer par une bibliothèque tierce ? Si ! C’est d’ailleurs cette solution que je vous recommande. Et ce pour une multitude de raisons :

  • Aucune bibliothèque supplémentaire.
  • Fonctionnalité déjà intégré.
  • Fonctionnalité commune sur toutes les plateformes disposant de PHP 4 >= 4.1.0 ou PHP 5 >= 5.1.0
  • Facile à installer grâce à apt-get pour les linuxiens ou grâce aux différents tutoriels pour les autres plateformes.
  • Limiter la redondance de code car il faut bien se le dire, l’API de PECL à beau être plus facile à appréhender le code que l’on dira de « bas niveau » est le même, que l’on passe par PHP natif ou par PECL ZipArchive

    Lire plus

Here We Go !

Junior Symfony Developer

Désormais développeur, je passe mes journées à tracker le code résolvant un problème, le moindre exemple dans le but de toujours réussir mes développements.

Aujourd’hui, je me lance (enfin…) dans un blog permettant de recenser les solutions et astuces que je peux trouver. Ce site est une sorte de Bookmark.

Qui sait… Peut-être te servira-t-il ?