• Home
  • Nous contacter

Adfab Connect

Adfab Connect

Adfab Connect

Adfab Connect
Framework

Symfony Live 2014 : Jour 1

Le Symfony Live 2014 a eut lieu le 7 et le 8 avril 2014. Cette conférence parle de Symfony2 et de son intégration via différentes problématiques métiers. Voici un compte rendu de la première journée.

Solr et recherche dans un site e-commerce

https://speakerdeck.com/adrienbrault/solr-et-recherche-dans-un-site-ecommerce d’Adrien Brault L’ensemble des sites e-commerce possède des moteurs de recherche plus ou moins poussé (avec des suggestions, des filtres, en fonction de la pertinence). Solr pour Standalone Entreprise Search Server est un projet Apache qui permet de faire des recherches text avancées, et optimisé pour des sites à forts traffic. Il est architecturé sous forme d’API REST au format XML, JSON ou CSV et possède sa propre administration Web.  L’indexation se fait presque en temps réel. Il  s’oppose à un autre concurent qui set ElasticSearch qui se base lui aussi sur Lucene. Elastic search est plus récent et donc mieux pensé  mais SOLR est beaucoup plus simple car il peut se résumer à une interface HTTP. Solr se base sur des triggers Mysql pour l’inventaire et le reste ainsi que sur des cron pour gérer les données calculées comme la popularité. Mais par contre Solr est en JAVA et donc comment on l’intègre à un Symfony ? On va utiliser la librairie de Solarium  qui permet d’utiliser une API pour interagir avec Solr et permet de faire des queryBuilder et des batch Updates. Mais l’intégration dans Symfony2 dans tout ça ? Il existe plusieurs bundles pour cela :

  • internations/solr-query-component
  • nelmio/solarium-bundle
  • hautelook/solarium-cache
  • floriansemm/solr-bundle

Attention au perfomance. En effet, les recherches groupées comme les suggestion avec 2000 choix sont très consommateurs.

Symfony à la télé

http://fr.slideshare.net/oliviermansour/symfony-la-tl d’Olivier Mansour C’est M6web qui a fait cette présentation et nous raconte comment ils ont en place une architecture Symfony2 chez M6Web. M6Web, c’est 150 domaines actifs, 306 repos GIT et plus de technologies que des dev et plus de projets que de devs. Le problème avec ce genre d’infrastructure est la qualité de code et ont commencé à mettre place des bests practices comme un symfony 2 ready to code à la sauce M6. Ils ont aussi décider d’utiliser des bundles pour tout et partout afin de séparer le plus possible la logique métier. En plus, il utilise l’excellent StatD pour la supervision et des tests Atoum (car behat est trop lent) qui permet des faire des tests unitaires et fonctionnels. Pour conclure, mieux vaut être prudent que désolé.

Le debug chez symfony

https://speakerdeck.com/nicolasgrekas/debug-plus-symfony de Nicolas Grekas Tout d’abord, dans symfony, les erreurs silencieuses ( utilisation de l’operation @) ne sont plus silencieuses mais sont retranscrit es dans la debug bar de symfony. On peut filtrer les logs en fonction des priorités (debug, notice, info, etc). Le var_dump dans Symfony2 n’est pas très explicite, en effet, généralement, il fait planter votre navigateur ou affiche beaucoup, beaucoup, …, beaucoup trop de choses. Ainsi une librairie est apparue :

  • LadyBug qui permet de facilement parcourir les noeuds d’un var_dump. Il affiche le debug de manière efficace et joli. Il fonctionne bien, c’est juste ce qu’on lui demande.

Comment construire un environnement e-commerce complet avec Symfony 2 ?

http://fr.slideshare.net/w0arz/20140406-symfony2-ecommerce de Fabien Gasser Il existe deux solutions pour Symfony2 concernant le e-commerce :

  • Sylius
  • Thelia2

Une des problèmatiques avec les sites e-commerces comme avec les gros sites est la tentation de réunir l’ensemble des besoins dans une même application. Ce qui va rendre difficile la maintenance, de complexifier le code et puis surtout modifier la structure de l’outils. Par exemple, si on veut faire un blog dans un e-commerce, on fait deux applications séparés : un cms pour le bloc et un e-commerce. Ainsi, il faut mieux posséder plein de petits modules qui permet de gérer des règles métiers plus ou complexes qui interagissent avec le modèle via des API. Ainsi, cela permet de mieux structurer le code, de faire un module par besoin et de pas mettre tout au même endroits : Avoir une application par domaine (faire peu mais faire mieux). Ainsi, la création d’API dans cette architecture semble obligatoire. Ainsi pour les API, nous pouvons utiliser Hateoas et HAL. On peut rajouter des tests facilement et utilisé NelmioApiBundle pour générer de manière automatiquement la documentation.  En plus, nous pouvions utiliser de manière simple Varnish afin de déterminer les fréquences de rafraîchissement des données. Cependant, quand on modifie le catalogue, il faut pas oublier de vider le cache varnish ou CDN, s’il y a un CDN. Il ne faut pas avoir peur d’utiliser des services tiers comme Prediggo (qu’il faudra monitorer) et des bundles comme JMSSerializeBundle, FosRestBundle, etc. Voici quelques bundles qui peuvent aider afin de faire une plateforme e-commerce :

  • SonataMediaBundle : gestion des médias
  • Thumbor : service de gestion d’images (détections de visages, motifs, etc)
  • Ckfinder : gestion des médias
  • DoctrineStateMachineBundle : gestion des états
  • FosUserBundle : gestion des utilisateurs
  • SonataAdminBundle / AdmingeneratorGeneratorBundle : gestion du back office
  • Solr / Elastic Search : gestion de recherche

 

Etendre Symfony, les bonnes pratiques

http://lolautruche.github.io/ez/etendre-symfony.html#/ de Jérome Vieilledent On peut étendre symfony2 via son propre bundle:

  • Explicite depuis le config.yml principal, ce qui est rapide, mais on peut pas surcharger les valeurs
  • Implicite depuis l’extension DIC, ce qui est automatique et on peut surcharger les valeurs, mais c’est magique.

On peut utiliser les services tags, qui permet d’étendre des services sans les modifier. On peut utiliser les events listeners/subcribers qui permettent de déclencher des actions et de modifier certains comportements. Il y a des événements un peu partout dans le core de Symfony2 notamment le KernelEvent, le SecurityEvents, le ConsoleEvents, le FormsEvents… Les événements sont cependant assez durs à débugger, car c’est des événements. Ainsi un bundle a été créer pour cela qui permet de débugger facilement les listeners d’évènements. On peut étendre les services avec de l’héritage :

  • simple, ce qui est parfait pour une besoin simple
  • substituer un service par un autre en utilisant un alias
23/04/2014 42 MIN READ BY: Thomas ROGER 0 COMMENT
SHARE
LIRE LA SUITE

Thomas ROGER

Laisser un commentaire Cancel Reply

Simplifier les shortcodes

Symfony live 2014 : Jour 2

VOUS POURRIEZ AIMER

Framework Découvrez les View Helper de ZF2 – Partie 2 – Les astuces

Framework PSR-0, 1, 2 and now ? no_more_underscores !

Framework Découvrez les View Helper de ZF2 – Partie 1

Développement Front Framework Mobile Développer une application pour pebble Time

CMS Développement backend Framework Ma première fois sur Pagekit !

Framework CakePHP is the shit

A propos d’Adfab

Nous sommes un studio de production digitales et d’innovation digitales au service des agences et des annonceurs
Nous recherchons le scintillement dans les regards et le plaisir de réalisations sur-performantes
Nous sommes techno-agnostiques
Nous sommes Adfab

Adfab Connect
Copyright © 2015 Adfab Connect