Archive for Symfony3

Symfony Docker Edition

Symfony Docker Edition

Un développeur s’est amusé à créer sa propre distribution Symfony comportant la configuration nécessaire pour tourner avec Docker.
La distribution intègre évidemment Symfony 3.0 mais également les dépendances logicielles pour le faire tourner, à savoir:

  • Supervisord (Permet le monitoring des processus)
  • Nginx (Serveur web, équivelent Apache)
  • MariaDB (fork de MySQL)
  • Memcached
  • PHP 5.6.17 + PHP-FPM
  • Xdebug
  • Opcache (équivalent APC)

La configuration choisie ne correspond pas forcément à ce que nous utilisons habituellement puisque chez nous on utilise plutôt Apache et MySQL, mais ça pourrait être un point de départ pour créer notre propre conteneur Docker, plutôt que de partir complètement de zéro.

Pour plus d’infos: https://github.com/drgomesp/symfony-docker

Symfony3 : L’authentification simplifiée avec Guard

Symfony3 : L’authentification simplifiée avec Guard

Profitant de quelques jours de calme bien mérités, on en profite pour continuer de se familiariser avec Symfony3. Bon autant être clair, la vérité c’est que pour l’instant les vraies nouveautés ne se bousculent pas au portillon, mais, il en existe au moins une qui mérite vraiment d’être étudiée : Symfony Guard.Symfony Guard est le nouveau système d’authentification apparu dans la version 2.8 de Symfony, il a pour vocation de simplifier la mise en place d’une stratégie d’authentification. En effet, alors que jusqu’à maintenant il fallait implémenter des milliers (on exagère à peine) d’interfaces et factory différentes, il n’est désormais nécessaire d’implémenter qu’une interface : Le « AbstractGuardAuthenticator« .

Cette interface ne contient que 7 méthode à implémenter:

  • getCredentials: Permettant d’extraire les identifiants de la requête (on peut imaginer un login/password soumis via un formulaire, une clé d’API passée en paramètre GET, etc.)
  • getUser: Permet de récupérer un utilisateur en fonction de ses identifiants (pouvant se trouver dans une BDD, un fichier, etc…)
  • checkCredentials: Permet de vérifier les identifiants
  • createAuthenticationToken: Permet de créer le token d’authentification
  • onAuthenticationFailure: Retourne un objet Response dans le cas où l’authentification échoue
  • onAuthenticationSuccess: Retourne un objet Response dans le cas où l’authentification réussit
  • supportsRememberMe: Permet de spécifier si la stratégie d’authentification supporte la fonctionnalité « Se souvenir de moi »

Ensuite il suffit simplement d’enregistrer cette classe en tant que service afin de pouvoir l’utiliser dans le security.yml et le tour est joué !

Pour plus de détail, vous trouverez ci-dessous un tutoriel expliquant comment implémenter un mécanisme d’authentification avec Symfony Guard: https://symfony.com/doc/current/cookbook/security/guard-authentication.html

Facile !

#symfony_live : Symfony3, best practices & déploiement

#symfony_live : Symfony3, best practices & déploiement

Les 9 et 10 octobre se tenait le Symfony Live à New-York, l’occasion de faire le point sur ce qui nous attend dans les mois qui viennent.

Il y a été question bien sûr de Symfony3 et Twig 2.0. D’ailleurs un guide de migration vers Symfony3 a été mis à disposition. On peut y voir les nombreux changements opérés sur les classes et méthodes du core, et (heureusement) à priori rien d’insurmontable ! Pour le guide c’est par ici : https://github.com/symfony/symfony/blob/master/UPGRADE-3.0.md

De même pour Twig 2.0, il est d’ors et déjà possible d’avoir un aperçu de la version DEV ici : https://github.com/fabpot/Twig/compare/master…2.0-experimental
Hormis le grand nettoyage dans les classes de Twig et les améliorations de perfs, on peut noter la fin du support de PHP 5.2.

Lors de cet évènement, Sensio a également présenté un document qui recense les principales best pratices du développement avec Symfony, une piqûre de rappel ne faisant jamais de mal vous pouvez télécharger gratuitement le pdf ici : http://symfony.com/doc/download-best-practices-book/

Enfin une des conférences de ce Symfony Live a particulièrement attiré notre attention, il s’agit de « Rock Solid Deployment of Symfony Applications ». Pablo Godel (Expert PHP, Symfony, AngularJS, DevOps sur PabloGodel.com) y propose un tour d’horizon des solutions de déploiements : Heroku, Rsync, utilisation de Git ou SVN, outils de build, de packaging, outils spécialisés tels que Capifony, Deployer et enfin les outils d’automatisation.

A découvrir de toute urgence ici : http://fr.slideshare.net/pgodel/symfony-live-nyc-2014-rock-solid-deployment-of-symfony-apps