Présentation utilisée en guise de support lors du Symfony Live 2014 à Paris sur comment migrer rapidement et simplement une application Symfony2 sur Azure. L'exemple se base principalement sur comment migrer son système de stockage de données et sa gestion des fichiers via la mise en place d'un Blob Storage.
Développer avec le sylius resourcebundle (Symfony live Paris 2015) Arnaud Langlade
Au cours de son développement Sylius, l'équipe s’est rendu compte qu’elle dupliquait énormément de code pour gérer ses CRUDs. Ne voulant pas réinventer Symfony ou utiliser un admin generator, elle décida de créer un bundle simple et flexible: SyliusResourceBundle. Je présenterai comment gérer ses CRUDs avec ce bundle en écrivant le minimum de code et, surtout, sans en dupliquer! Il a été pensé afin de pouvoir supporter plusieurs types de drivers (DoctrineORM, PHPCR). De plus, il permet de construire rapidement une API grâce au FOSTRestBundle. Je mettrai en avant l’ensemble des composants utilisés par ce bundle comme Doctrine. Il facilite la configuration le ResolveDoctrineTargetEntitiesPass ainsi que la création de MappingDriver. Il utilise aussi l’EventDispatcher: des évènements sont soulevés lorsque une action est exécutée sur une ressource. Il apporte aussi de nouveaux FormType ou FormExtension comme la CollectionExtension qui permet de gérer ses forms collection (js inclus).
Retour d’expérience sur l’intégration de symfony2 chez M6Web M6Web a opéré une transition de Java vers PHP il y a de nombreuses années mais a commencé a réaliser des applications Symfony2 depuis 18 mois. Nous verrons ensemble les différentes étapes qui ont été franchies et quelles stratégies ont été adoptées pour opérer cette transition. Comment M6Web intègre le code legacy à Symfony2 ? Les bundles et librairies que nous avons développés pour adapter le socle SF2 à nos besoins et à nos contraintes d’exploitation. Comment le code est déployé dans notre data-center ou sur AWS. Ce que le framework a changé dans l’organisation des équipes. Et enfin, sur quels critères nous choisissons de construire une application avec Symfony2 ou une autre technologie. M6Web est une filiale à 100% de M6, en charge des offres digitales et interactives du groupe.
Cette présentation à pour but d'expliquer à des néophites les avantages du framework PHP Symfony.
Elle m'a servit en entreprise pour expliquer ses concepts complexe à des non-informaticiens.
Premier chapitre d'une formation Symfony 2,
l'Objectif de ce chapitre peut se résumer dans les points suivants :
- Présentation du framework Symfony en sa version 2.x
- Première installation de Symfony, et découvert de son arborescence projet
- Notion des Bundles : Notion de contrôleur et Vue + Réalisation d'un premier contrôleur
- Système des Routes : utilisation des annotations pour définir des routes
Cette présentation à pour but d'expliquer à des néophites les avantages du framework PHP Symfony.
Elle m'a servit en entreprise pour expliquer ses concepts complexe à des non-informaticiens.
Présentation utilisée en guise de support lors du Symfony Live 2014 à Paris sur comment migrer rapidement et simplement une application Symfony2 sur Azure. L'exemple se base principalement sur comment migrer son système de stockage de données et sa gestion des fichiers via la mise en place d'un Blob Storage.
Développer avec le sylius resourcebundle (Symfony live Paris 2015) Arnaud Langlade
Au cours de son développement Sylius, l'équipe s’est rendu compte qu’elle dupliquait énormément de code pour gérer ses CRUDs. Ne voulant pas réinventer Symfony ou utiliser un admin generator, elle décida de créer un bundle simple et flexible: SyliusResourceBundle. Je présenterai comment gérer ses CRUDs avec ce bundle en écrivant le minimum de code et, surtout, sans en dupliquer! Il a été pensé afin de pouvoir supporter plusieurs types de drivers (DoctrineORM, PHPCR). De plus, il permet de construire rapidement une API grâce au FOSTRestBundle. Je mettrai en avant l’ensemble des composants utilisés par ce bundle comme Doctrine. Il facilite la configuration le ResolveDoctrineTargetEntitiesPass ainsi que la création de MappingDriver. Il utilise aussi l’EventDispatcher: des évènements sont soulevés lorsque une action est exécutée sur une ressource. Il apporte aussi de nouveaux FormType ou FormExtension comme la CollectionExtension qui permet de gérer ses forms collection (js inclus).
Retour d’expérience sur l’intégration de symfony2 chez M6Web M6Web a opéré une transition de Java vers PHP il y a de nombreuses années mais a commencé a réaliser des applications Symfony2 depuis 18 mois. Nous verrons ensemble les différentes étapes qui ont été franchies et quelles stratégies ont été adoptées pour opérer cette transition. Comment M6Web intègre le code legacy à Symfony2 ? Les bundles et librairies que nous avons développés pour adapter le socle SF2 à nos besoins et à nos contraintes d’exploitation. Comment le code est déployé dans notre data-center ou sur AWS. Ce que le framework a changé dans l’organisation des équipes. Et enfin, sur quels critères nous choisissons de construire une application avec Symfony2 ou une autre technologie. M6Web est une filiale à 100% de M6, en charge des offres digitales et interactives du groupe.
Cette présentation à pour but d'expliquer à des néophites les avantages du framework PHP Symfony.
Elle m'a servit en entreprise pour expliquer ses concepts complexe à des non-informaticiens.
Premier chapitre d'une formation Symfony 2,
l'Objectif de ce chapitre peut se résumer dans les points suivants :
- Présentation du framework Symfony en sa version 2.x
- Première installation de Symfony, et découvert de son arborescence projet
- Notion des Bundles : Notion de contrôleur et Vue + Réalisation d'un premier contrôleur
- Système des Routes : utilisation des annotations pour définir des routes
Cette présentation à pour but d'expliquer à des néophites les avantages du framework PHP Symfony.
Elle m'a servit en entreprise pour expliquer ses concepts complexe à des non-informaticiens.
Deuxième chapitre d'une formation Symfony 2,
l'Objectif de ce chapitre peut se résumer dans les points suivants :
- Présentation du moteur de template Twig
- Syntaxe et utilisation du moteur de template Twig dans les vues des contrôleurs
- Passer des variables depuis les contrôleurs vers les vues
Au cours de cette session, nous présenterons d'une manière générale toutes les caractéristiques qui font de symfony un framework open source tourné vers le monde professionnel.
Il s'agira dans un premier temps de montrer que symfony n'est pas seulement une base de code mais un projet open source à part entière disposant d'un écosystème riche sur lequel n'importe quel développeur peut compter.
Nous porterons ensuite un oeil plus attentif aux fonctionnalités phares du framework telles que sa couche d'abstraction de base de données, son interface en ligne de commande, le routing bidirectionnel, les outils de test automatisés ou bien encore le générateur automatique de backoffice.
Orchestrez vos projets Symfony sans fausses notesXavier Gorse
Retour d'expériences sur tout le processus d'ingénierie logicielle de projets Symfony que nous avons construits au fil du temps depuis nos premiers projets en 2006. Nous aborderons toutes les phases de l'industrialisation nous ayant permis d'accroître la qualité et la réactivité d’intervention sur les projets
Slides du talk donné à la API Platform conference, édition 2021. J'y parle du générateur de client NextJS d'API Platform mais aussi de la contribution à l'Open Source en tant que développeur junior.
Symfony est le framework le plus répandu pour les dévéloppeurs PHP,pour ce fait je vais vous montrer comment développer les applications web (Backend) ultra-rapides et savoir quand et comment choisir un outil
Symfony2: 30 astuces et bonnes pratiquesNoel GUILBERT
Avec cette nouvelle version de votre framework préféré, de nouvelles fonctionnalités et de nouveaux usages sont apparus. Vous vous demandez comment structurer vos bundles? Comment organiser votre code source? Comment utiliser correctement l'injecteur de dépendance? Venez découvrir au cours de cette session les bonnes pratiques, et quelques astuces, qui vous aiderons dans la réalisation de vos projets avec Symfony2.
Cette nouvelle version du framework a été entièrement réécrite afin de tirer profit de PHP 5.3 d'une part mais également de corriger les erreurs du passé avec symfony 1.x.
Cette nouvelle version regorge de fonctionnalités puissantes pour vous aider à bâtir des applications web maintenables, pérennes, performantes et évolutives.
Cette présentation donne un aperçu des nouvelles fonctionnalités de Symfony2 comme l'architecture MVC, les tests automatisés ou bien encore l'envoi d'emails.
Retour sur le club utilisateur - retour d'expérience de la plateforme Simplicité :
- Présentation de la nouvelle version de Simplicité (V4) : Les grandes évolutions de la plateforme et celles à venir.
- Région Bretagne fait son retour d’expérience : après plusieurs années d’utilisation de la plateforme, quel retour faire ? Quelles sont les applications en production ? Pour quels usages ? Les avantages et inconvénients de ce type de solution ?
- Arismore présentation : IT data insight powered by Simplicité. Comment partager et rendre visible les données de l’IT ?
Microsoft « aime » officiellement l'Open Source ! A ce titre, Sébastien Véniel a présenté lors d'une interview le CMS DotNetNuke et ses avantages compétitifs dans le monde d'internet de 2011.
Comarch BI est un outil complet destiné à l’optimisation du traitement de l'information provenant de tous les départements de l'entreprise : comptabilité,ventes, achats, logistique, gestion de la relation client (CRM) ou encore celles provenant de données extérieure à l'entreprise.
Il permet aux managers de disposer d'informations stratégiques, dans un format adéquat et depuis une interface unique. Comarch BI assiste avant tout les décideurs dans leurs prises de décisions, mais également les collaborateurs devant prendre des décisions opérationnelles.
Deuxième chapitre d'une formation Symfony 2,
l'Objectif de ce chapitre peut se résumer dans les points suivants :
- Présentation du moteur de template Twig
- Syntaxe et utilisation du moteur de template Twig dans les vues des contrôleurs
- Passer des variables depuis les contrôleurs vers les vues
Au cours de cette session, nous présenterons d'une manière générale toutes les caractéristiques qui font de symfony un framework open source tourné vers le monde professionnel.
Il s'agira dans un premier temps de montrer que symfony n'est pas seulement une base de code mais un projet open source à part entière disposant d'un écosystème riche sur lequel n'importe quel développeur peut compter.
Nous porterons ensuite un oeil plus attentif aux fonctionnalités phares du framework telles que sa couche d'abstraction de base de données, son interface en ligne de commande, le routing bidirectionnel, les outils de test automatisés ou bien encore le générateur automatique de backoffice.
Orchestrez vos projets Symfony sans fausses notesXavier Gorse
Retour d'expériences sur tout le processus d'ingénierie logicielle de projets Symfony que nous avons construits au fil du temps depuis nos premiers projets en 2006. Nous aborderons toutes les phases de l'industrialisation nous ayant permis d'accroître la qualité et la réactivité d’intervention sur les projets
Slides du talk donné à la API Platform conference, édition 2021. J'y parle du générateur de client NextJS d'API Platform mais aussi de la contribution à l'Open Source en tant que développeur junior.
Symfony est le framework le plus répandu pour les dévéloppeurs PHP,pour ce fait je vais vous montrer comment développer les applications web (Backend) ultra-rapides et savoir quand et comment choisir un outil
Symfony2: 30 astuces et bonnes pratiquesNoel GUILBERT
Avec cette nouvelle version de votre framework préféré, de nouvelles fonctionnalités et de nouveaux usages sont apparus. Vous vous demandez comment structurer vos bundles? Comment organiser votre code source? Comment utiliser correctement l'injecteur de dépendance? Venez découvrir au cours de cette session les bonnes pratiques, et quelques astuces, qui vous aiderons dans la réalisation de vos projets avec Symfony2.
Cette nouvelle version du framework a été entièrement réécrite afin de tirer profit de PHP 5.3 d'une part mais également de corriger les erreurs du passé avec symfony 1.x.
Cette nouvelle version regorge de fonctionnalités puissantes pour vous aider à bâtir des applications web maintenables, pérennes, performantes et évolutives.
Cette présentation donne un aperçu des nouvelles fonctionnalités de Symfony2 comme l'architecture MVC, les tests automatisés ou bien encore l'envoi d'emails.
Retour sur le club utilisateur - retour d'expérience de la plateforme Simplicité :
- Présentation de la nouvelle version de Simplicité (V4) : Les grandes évolutions de la plateforme et celles à venir.
- Région Bretagne fait son retour d’expérience : après plusieurs années d’utilisation de la plateforme, quel retour faire ? Quelles sont les applications en production ? Pour quels usages ? Les avantages et inconvénients de ce type de solution ?
- Arismore présentation : IT data insight powered by Simplicité. Comment partager et rendre visible les données de l’IT ?
Microsoft « aime » officiellement l'Open Source ! A ce titre, Sébastien Véniel a présenté lors d'une interview le CMS DotNetNuke et ses avantages compétitifs dans le monde d'internet de 2011.
Comarch BI est un outil complet destiné à l’optimisation du traitement de l'information provenant de tous les départements de l'entreprise : comptabilité,ventes, achats, logistique, gestion de la relation client (CRM) ou encore celles provenant de données extérieure à l'entreprise.
Il permet aux managers de disposer d'informations stratégiques, dans un format adéquat et depuis une interface unique. Comarch BI assiste avant tout les décideurs dans leurs prises de décisions, mais également les collaborateurs devant prendre des décisions opérationnelles.
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...Identity Days
Présentation générale de MIM 2016
– Les licences MIM 2016
– Présentation de MIM 2016 Synchronization Services (inclus dans une licence Windows Server)
Vue d’ensemble du moteur de synchronisation.
– Les astuces pour démarrer avec MIM 2016 Synchronization Services
– Développer avec MIM 2016 Synchronization Services
Démo de 5 cas d’usage :
– Création, modification, suppression de l’objet identités (Metaverse rule) à partir d’un référentiel RH.
– Génération d’attributs à l’aide règles de transformations avancées (via les rules extensions)
– Réconciliation de plusieurs sources de données RH / paie.
– La mobilité inter-base RH.
– Le provisionning des autres systèmes cibles (Exchange, base de données…).
Seminaire 2010 : Réussir les nouveaux projets web innovants avec DrupalLINAGORA
Présentation donnée lors du séminaire de Linagora du mois d'avril consacré à Drupal.
Intervenant : Jérôme RELINGER, Directeur de Linagora WebStudio&Hosting
BoutiqueBuilder, Morin logistique, rueducommerc et cibleweb convention ecomme...Guilhem GLEIZES
Cette présentation propose un exemple concret de l'intéraction entre les différents acteurs de la chaîne ecommerce.
De la promotion du site jusqu'au traitement et à l'expédition des commandes
Compiere, l'ERP open source qui s'adapte à votre métierAudaxis
Multi-canal, Mobilité, International, Innovation…
Compiere est l'ERP open source le plus mature avec 12 ans d'existence et des projets multi-sites de toute taille depuis les PME jusqu'aux grands comptes.
Spécialiste des ERP open source, Audaxis vous accompagne dans le choix et la mise en place de logiciels de gestion open source.
Présentation pour l'Adije sur la création d'un site Internet et son optimisation.
Nous aborderons toutes les étapes nécessaires et les questions a se poser pour la création d'un site Internet pour ensuite discuter des différents solutions afin de rendre son site Intenret plus efficace
Construction d'un moteur de recommandation pour Hybris, à partir des actions de l'utilisateur sur le sites (Business events, Collaborative filtering, Spark MLLib)
Imagine est l’événement international incontournable dédié à la solution e-Commerce Magento : 45 pays représentés et plus de 2 500 commerçants, partenaires, developpeurs et experts du commerce en ligne… un événement mondial qui permet de saisir les futurs enjeux du e-Commerce.
Comme chaque année depuis 2010, cet événement met en avant les dernières innovations de la plateforme e-Commerce, en plus d’échanger conseils, solutions, dernières technologies et stratégies autour du e-commerce.
Il s’est déroulé à Las Végas du 11 au 13 avril, et Rudy Abitbol, associé altima°, était présent.
Vous gérez un ou plusieurs point(s) de vente ? Une chaîne de magasins ?
Peu importe la nature de votre commerce, le volume d’articles gérés ou encore le nombre de points de vente associés,
Odoo offre un ensemble de solutions simples et entièrement personnalisables pour accélérer le processus de vente aux caisses, augmenter la satisfaction de vos clients et optimiser au maximum la gestion de votre stock et de votre back office
[Webinar du 17/06/2014] Bien intégrer sa boutique e-Commerce à son système d'...Kaliop-slide
Vous souhaitez mettre à jour automatiquement les informations catalogue et stock sur votre boutique e-Commerce?
Vous souhaitez récupérer les informations clients et de facturation pour les utiliser dans votre CRM ou votre outil comptable?
Similaire à Comment construire un environnement e-commerce complet avec Symfony 2 ? (20)
2. 2
@fabien_gasser
Consultant avant-vente @ Smile
Ex Project Manager @ SensioLabs
Passions : rap français – e-commerce
Smile intégrateur de solutions open
source
Plus de 60 projets de plus 250 jours
Magento, Drupal, Jahia, Liferay, Sf2, Spring…
E-commerce
o 10 millions de produits et plus…
o 200 pages / secondes et plus
o Multi Store, Multi Marchand, Multi Canaux,
Marketplace…
3. 3
Différents types d’e-commerces
B2C
o e-shop : Unkut, Marketplace : Fnac, Drive : Chronodrive, Auchan Drive…
o Abonnement : Birchbox
o Ventes flash : Voyages privés
B2B prix négocié par client :
o gestion de CE, vente de voitures…
…
Il faut concentrer ses forces sur le métier pour créer du lien avec
le client et le faire revenir
Alternative : avoir un produit incroyable… sans aucune concurrence.
7. 7
« Nous voulons faire de Symfony le standard du middleware PHP »
Symfony 2 comme Middleware : le liant applicatif
Le développement spécifique sert à combler le gap entre les progiciels référents et
le besoin client.
o Respect des domaines fonctionnels
10. 10
Il est tentant de réunir l’ensemble des besoins dans une même
application.
!!! Difficulté de maintenance
!!! Règles métiers complexes et inutiles
Modification de la structure d’un outil
Faire d’un blog un e-commerce…
Il faut séparer les deux applications
o CMS
o E-commerce
On ne fait pas des slides avec Excel !
13. 13
Faisons des choses plus petites et réduisons le couplage !
Core API
Une gestion fine des ACL via un serveur oauth, autres…
Concevoir des applications par domaine : faire peu mais faire mieux
o Faciliter la mise à jour d’un service / sa maintenance / sa disponibilité
Oublions les applications monolithiques
o La segmentation applicative à partir des Controlleur n’est pas suffisante
Et si on envisageait la segmentation par domaine fonctionnel ?
15. 15
Représentation
Hateoas + HAL
json/xml/messagepack
Microformats
Stateless : scalabilité horizontale
Sécurisé : SSL + token
Test facile et documentation
automatique NelmioApiBundle
Gestion de version applicative
Varnish pour définir la fréquence
de rafraichissement des données
16. 16
Redis : cache, session, queues
Videz le cache Varnish / CDN quand vous modifiez une information produit /
catalogue…
Si vous n’avez pas de calcul à faire sur votre catalogue (création de vue), prix le
plus le bas… Stockez le dans Solr ou Elasticsearch : scalable, API Rest
Ayez des alertes sur vos services et flux : New Relic, Monitoring…
N’ayez pas peur d’utiliser des services tiers :
Prediggo, Compario, LiveFyre, Gigya…
Les bundles
Socle : MSSecurityExtraBundle, StofDoctrineExtensionBundle, LiipCacheControlBundle, MonologBundle,
Symfony-cmf/Routing, TemplatedUriBundle
API : JMSSerializerBundle, FosRestBundle, BazingaHateoasBundle, NelmioApiDocBundle,
BazingaFakerBundle
22. 22
La gestion des images, medias :
KnpLabs/KnpGaufretteBundle : s3, MongoGridFS
Sonata Media Bundle
Thumbor : service intelligent de gestion d’images (Détections de visages, motifs)
Interface intelligente de gestion des medias ? Ckfinder ?
Mise en place de queue de traitement asynchrone pour les
traitements de masse.
23. 23
La gestion des commandes est un des nerfs de la guerre
Créer une machine à état grâce aux bundles :
github.com/yohang/Finite
DoctrineStateMachineBundle
Gestion des différents états de la commande ou du panier
Une tâche en parallèle vérifie les états des commandes pour déclencher des
actions
Liée à des systèmes tiers comme la notification de paiement ou de
remboursement, la gestion d’abonnement…
Votre e-commerce n’est pas un outil de Business Intelligence,
gardez uniquement des KPI simples sur votre interface
d’administration
24. 24
Un e-commerce est une solution dialoguant avec de nombreux
interlocuteurs
ESB ERP CRM BI WMS DAM MARKETPLACE (lengow, mirakl…)
Dans différents formalismes :
SOAP REST EDI CSV...
HATEHOAS Messapack pour les applications mobiles
Organisation votre modèle de données
Modèle de base pour gérer votre modèle
Créer des services pour manipuler vos interfaces SOAP / REST exposées
MONITORER LES FLUX !!!
25. 25
Créer une base client unique et partagée avec vos différentes
applications
Utilisateur :
o FosUserBundle
o HWIOAuthBundle
o FosCommentBundle
o …
SonataAdminBundle
Centraliser les événements utilisateurs et suivre l’activité de ses
utilisateurs
Real user monitoring / New Relic Insight
26. 26
Rester en contact avec ses clients : OroCRM
Segmentation client
Tâches et rappels
Processus de ventes
Des fonctionnalités orientées e-commerce
Panier abandonné
Suivi utilisateur
28. 28
La Recherche :
Intégration Elastic Search ou Solr pour indexer la PIM et bénéficier des avantages
d’un moteur de recherche
o API REST
o Fonctionnalités liées à un moteur de recherche
Recommandation : up sell, cross sell…
Ajout de la gestion d’affinité produit à chaque achat ou création de liste de
produits pour effectuer un système de recommandation simple
Définition de règle métier avec ExpressionLanguage pour l’association de produit
Intégrer des outils tiers : Prediggo, Fred Hopper, Compario…
29. 29
CMS & Merchandising : Drupal 8, Sulu CMF, Bolt
Placer du contenu CMS pour faire vivre vos catégories
Le contenu des experts, le rappel concernant la sécurité de paiements
ESI / SSI / Hinclude / pjax / turbolinks
Content as a Service / Data as a Service
Sulu.io
Pagekit
30. 30
Intégration des moyens de paiements
Paiement : intégration d'un prestataire monétique :
o PayumBundle
Utilisez un PSP – payment service provider : be2bill, paybox…
o Facilité d’ouverture de nouveaux de pays
o Gestion de la fraude
o API de gestion des paiements
Paiement One-Click Paiement 3 x sans frais
par CB
(et relances automatique)
Paiement à l’expéditionPaiement simple
Remboursement
partiel/total depuis le
Back-Office
Paiement Cross-Canal Autorisation simple
(vérification de la validité de
la carte)
31. 31
200 pages / seconde et plus…
Prévoir un fallback sur les pages les plus consommatrices : une version dégradée
de l’application.
Prévoir son application stateless de façon à faciliter la scalabilité horizontale
Découplage des services et des sites
Ratchet ? WebRTC ?
Hébergement scalable
Cluster de base de données et d’indexation
Création d’instance à la volée pour s’adapter à la charge :
o Docker, Serf, Mesos…
Predictive auto-scaling (Scryer/Netflix) Traffic pattern : variable