OroCommerce mise à jour version 5.0 LTS

Comme en chaque début d’année, OroInc nous dévoile sa nouvelle version de ses applications OroPlatform, OroCRM et OroCommerce. Cette version 5.0 LTS est disponible depuis début février. Voici un tour d’horizon des nouveautés par application.

OroPlatform

Une mise à jour de l’environnement technique afin d’optimiser les performances et la sécurité des applications :

  • Symfony 5.4 LTS
  • Version de sécurité de PHP 8.x
  • PostgreSQL 13 / MySQL 8
  • ElasticSearch 8
  • NodeJS 16
  • Redis 6
  • MongoDB 4.4

Des évolutions ont aussi été apportées aux bibliothèques d’API. Autant pour les fonctionnalités back-office que front-office afin que vous puissiez utiliser OroCommerce pour mettre en œuvre vos stratégies e-commerce unifiées

OroCRM

Cette version comprend l’intégration complète de Microsoft Office 365. Grâce à l’authentification unique, la synchronisation est facile pour les contacts, les calendriers, les tâches et les e-mails.

OroCommerce

De nombreuses optimisations arrivent également dans la partie e-commerce.

Concernant le front-office, les performances et l’accessibilité ont été au centre des améliorations :

  • Support du format WebP pour les images.
  • Optimisation du front office notamment au niveau du Javascript
  • Compatibilité avec les lecteurs d’écran et autres technologies d’assistance conformes aux exigences WCAG et ADA.

Côté nouvelles fonctionnalités utilisateur, la recherche interne sur la boutique évolue :

  • Résultat de recherche enregistrable et configurable par utilisateur avec un système de notification pour être informer par exemple des ré-approvisionnements
  • Les résultats de recherche filtrés sont désormais téléchargeables en fichier Excel

Et côté back-office et fonctionnalités métier :

  • Contrôle de la recherche en ligne avec des attributs pondérés pour les administrateurs des boutiques

Long-Term Support

Cette dernière version dispose d’un support à long terme (LTS) avec ces échéances :

  • Fin de la maintenance active : juin 2023
  • Fin du support de sécurité : janvier 2025

Vous trouverez ci-dessous le calendrier des différentes versions avec leur durée du « Long term support » sur le site d’OroInc.

PS : Si vous utilisez Enterprise Edition 4.2 LTS, vous aurez accès aux mises à jour de sécurité jusqu’en janvier 2024. Les utilisateurs de Community Edition devraient passer à OroCommerce 5.0 Community Edition dès que possible.

Découvrir cette version

Si vous souhaitez découvrir cette nouvelle version, vous pouvez dès à présent consulter la démo en ligne.

Si vous souhaitez une présentation, vous pouvez vous inscrire à l’événement Oro « Démonstration de la mise à jour du produit OroCommerce version 5.0 : Pourquoi vos clients B2B vont l’adorer ? » Jeudi 3 Mars, 17H CET en vous inscrivant ici.

Et, si vous avez des interrogations sur une montée de version ou des questions sur cette version, n’hésitez pas à nous contacter nous aurons plaisir à vous répondre.

Article OroInc : https://oroinc.com/fr/b2b-ecommerce/blog/la-version-5.0-de-orocommerce-est-arrivee/

Kiboko devient partenaire Artifakt

Kiboko s’associe à Artifakt et devient Solution partner afin de proposer les meilleures offres d’hébergement Cloud à nos clients.

Artifakt, qu’est ce que sait ?

Artifakt est une solution d’hébergement PaaS (Platform as a service) qui redonne de l’autonomie aux développeurs et aide les entreprises à déployer, héberger et gérer des applications Web sur une infrastructure cloud évolutive et résiliente.

Artifakt permet de déployer et de gérer des applications web (sites e-commerce, blogs, CRM, ERP …) dans les Clouds publics (AWS, Google Cloud Platform, Microsoft Azure). Grâce aux microservices, Artifakt est la 1ère technologie permettant un déploiement d’applications web multi-cloud.

Kiboko, Artifakt solution partner

Expert en solutions e-commerce

Artifakt propose des plateformes d’hébergement Cloud eCommerce optimisées pour votre application. Que vous utilisiez Magento, Akeneo ou Sylius, le moteur Artifakt crée un environnement prêt à l’emploi en quelques minutes seulement. Toutes les configurations et les exigences recommandées pour votre application sont déjà configurées. Votre site Web est prêt pour les affaires.

Déployez votre site Web en production

Artifakt a une configuration affinée pour Symfony et PHP afin de vous offrir les meilleures performances lors de la navigation sur votre site Web. Artifakt utilise un pipeline automatisé, avec un processus de déploiement blue-green . Le workflow (flux de travail) de déploiement a été ajusté et optimisé pour livrer votre projet en un minimum de temps et sans temps d’arrêt. Plus d’informations sur les déploiements automatiques.

Monitoring

Avec les solutions Artifakt, vous disposez d’un aperçu clair des métriques et de la journalisation de votre application Web. Artifakt vous donne une visibilité sur le comportement de votre application Web. Gérez le cycle de vie de votre application avec une console conviviale pour les développeurs.

Artifakt surveille en permanence la santé de votre application Web pour s’assurer que tout fonctionne correctement. Il est possible d’activer des alertes par environnement et par projet. Artifakt identifie les vulnérabilités et vous informe instantanément de la défaillance à laquelle votre application est confrontée.

En résumé

Kiboko avec Artifakt vous propose désormais une offre complète pour mettre en place vos applications sur des environnements Cloud avec tous les outils pour le déploiement et le monitoring. Les 2 expériences cumulées vous assureront une accessibilité et des performantes optimisées pour vos outils. N’hésitez pas à nous contacter pour avoir une présentation détaillée des offres disponibles.

OroInc dévoile OroMarketplace

En 2021, OroInc dévoile un nouvel outil dans son éco-système. Après OroPlatform, OroCRM et OroCommerce voici OroMarketplace.

Faites passer votre canal numérique au niveau supérieur avec le système flexible de gestion de place de marché.

Unissez l’écosystème de votre industrie autour de votre marque en fournissant aux acheteurs et aux vendeurs des portails en libre-service numérisés qui rationalisent leurs opérations.
Développez de nouvelles sources de revenus avec des services de marché supplémentaires tels que des abonnements, des promotions ou des frais de transaction échelonnés.
Développez votre offre de produits et prenez en charge des catalogues de vendeurs supplémentaires avec un nombre illimité de SKU.

  • Logiciel de gestion de marché en ligne conçu pour toute structure d’entreprise, réseau de vendeurs ou marché.
  • Obtenez une visibilité complète de votre inventaire, y compris ce qui est disponible et combien vous avez vendu.
  • Construisez une place de marché pour l’avenir. Ajoutez des vendeurs supplémentaires et un nombre illimité de SKU.
  • Unissez un écosystème autour de votre marque avec des portails en libre-service pour acheteurs et vendeurs.
  • Développez votre portée, que ce soit au niveau national ou international, sur de nouveaux marchés et canaux de vente.
  • Développez de nouvelles sources de revenus avec des adhésions, des promotions ou des services à valeur ajoutée.
  • Gagnez en visibilité sur l’activité commerciale grâce aux rapports.
  • Gardez une trace de la rentabilité des produits et faites de meilleures prévisions.

Voir toutes les fonctionnalités disponibles

Chaque entreprise et chaque industrie est unique, ce qui signifie qu’il n’y a pas deux marchés identiques.

N’hésitez pas à nous contacter afin que vous présente en détails l’outil et qu’on vous propose une démonstration.

Forum PHP 2021

Suite à une année 2020 pleine de visioconférences, nous avions plaisir à nous retrouver en présentiel pour cette édition 2021 du Forum PHP au Centre des Congrès Novotel Paris-Est.  Pour cet évènement organisé par l’AFUP, l’équipe est enthousiaste de vous présenter notre retour d’expérience et les différents sujets qui nous ont marqués.

JOUR 1

Vers la sobriété numérique

Nous avons commencé cette première journée de conférences avec celle de François Zaninotto qui nous parle de l’enjeu écologique dans la conception de solution numérique. Il nous a présenté plusieurs bonnes pratiques pour réduire l’impact environnemental ainsi qu’un outil qui nous permet de mesurer pour chaque site la production de CO2, GreenFrame : https://greenframe.io/

Symfony 6 : le choix de l’innovation et de la performance

Nous enchaînons ensuite avec la traditionnelle conférence sur Symfony présentée par Nicolas Grekas où nous avons pu découvrir la dernière version.

Symfony 6.0 sortira au mois de Novembre 2021 :

Symfony releases calendar

Le plus gros changement dans cette version est la compatibilité avec php 8 et donc l’ajout des types dans les propriétés, arguments et valeurs de retours des méthodes à chaque fois que c’est possible.

Et une des nouveautés très appréciée par les développeurs sera l’arrivée de l’auto-complétion dans le terminal pour les commandes Symfony :

Kairoi, et PHP se réconcilie avec les tâches planifiées

Julien nous fait un retour sur la présentation d’Emeric Kasbarian et Jérémy James, qui sont venus nous présenter un outil de planification de tâches qu’ils ont développé ensemble.

Ils nous ont présenté la genèse du projet, leurs débuts dans le développement de l’outil jusqu’à la mise en production.
Tout a commencé lorsqu’un de leurs projets avait besoin de planifier des tâches de différentes manières sur leur site web écrit en PHP, par exemple l’expiration des coupons au bout d’un certain temps. C’est depuis ce jour qu’Emeric et Jérémy se sont interrogés sur les différents systèmes de planification de tâches qui existent à ce jour.

Quasiment tous les développeurs connaissent le fameux CRON qui est un outil qui, je cite, « permet aux utilisateurs des systèmes Unix d’exécuter automatiquement des scripts, des commandes ou des logiciels à une date et une heure spécifiées à l’avance ou selon un cycle défini à l’avance ». Le problème de celui-ci est qu’il n’est pas assez configurable facilement.

C’est pour cela que les deux développeurs ont créé un serveur écrit avec le langage Rust qui s’occupe de gérer l’exécution des tâches ainsi qu’un client PHP très léger qui permet d’envoyer des requêtes à ce serveur. D’une part il est possible de créer plusieurs clients, de langages différents, car le serveur communique à travers un protocole bien défini. Les jobs exécutés sur le serveur ont la garantie d’être exécutés au moins une fois après la date souhaitée. Il est possible d’avoir plusieurs runners avec RabbitMQ, de plus le serveur Kairoi assure que le traitement soit réalisé de manière atomique.
Pour ce qui est du client, le projet kaoiri-php disponible sur Github, permet de créer des jobs/rules très simplement en utilisant peu de classes.
En conclusion, Kairoi est une bonne nouvelle pour l’écosystème PHP puisqu’il apporte un nouvel outil robuste, efficace et simple d’utilisation pour de la planification.

Du Domain-Driven-Design avec API Platform

Sébastien a choisi de nous parler de la conférence sur le DDD avec API Platform, présentée par Mathias A. et Robin C. de la scoop Les-Tilleuls.

Les conférenciers ont commencé par nous expliquer ce qu’est ce Domain Driven Design et nous ont ensuite montré comment intégrer cette approche à API Platform qui est un framework orienté RAD.
 Le but de cette approche est de mettre le métier au centre de l’application. Ils ont continué par nous parler de l’architecture hexagonale et de comment organiser son code et l’architecture du projet.

L’architecture Hexagonale est composée de 3 couches :


  • Domain : La couche domain représente les informations relatives au métier et dont le but est d’isoler le domaine métier de l’extérieur (Models, Repositories, Events).
  • Application : La couche application sépare le monde extérieur du métier et c’est elle qui coordonne les interactions avec la couche domaine (DTOs, Commands, Queries).
  • Infrastructure : La couche infrastructure sert principalement à fournir des outils pour établir des liens entre les différentes couches (Controllers, Caches, Databases).


En mettant en place ce type d’architecture, l’intégrité du domaine est préservée, le code est plus testable et le domaine est séparé du monde extérieur. Nos deux speakers sont partis d’un exemple très simple : ils avaient une entité sur laquelle ils ont découplé Doctrine et le lien qu’a cette entité avec API Platform dans des fichiers séparés. En faisant ça, le lien entre l’entité, Doctrine et API Platform ne se fait plus dans un même fichier mais dans plusieurs fichiers; l’entité se trouve dans la couche Domain et les fichiers contenant la configuration de doctrine et d’API Platform se trouvent dans la couche Infrastructure. Ensuite, un Bus (fournis par le composant Messenger de Symfony) se charge de faire la liaison entre la couche Domain et la couche Infrastructure.
 Au final, le résultat reste le même, mais le fonctionnement est différent.


Pour conclure sur cette conférence, celle-ci nous a permis de nous perfectionner sur le DDD ainsi que sur sa mise en place grâce à la découverte d’une solution utilisant cette approche.

JOUR 2

Synchroniser ses applications plus rapidement avec du low-code

On commence ce 2ème jour avec la conférence de Grégory.

Synchroniser les données entre plusieurs applications est une problématique que de nombreux e-commerçants ont déjà rencontrée. Nous avons pu voir les différentes problématiques rencontrées lors de mises en place de solutions e-commerce connectées avec des logiciels de caisse, des gestionnaires de catalogue et/ou des bases de données de client. (ex: les préparateurs ne reçoivent plus les commandes, vente hors-stock…).

Ensuite, nous avons pu découvrir la méthodologie l’ETL (Extract Transform Load) qui permet de mettre en place une séquence d’opérations portant sur les données à manipuler et à transférer. Nous avons également fait un tour d’horizon des solutions existantes permettant de faire de l’ETL pour répondre aux interrogations citées précédemment. Mais ces différents outils ne répondaient pas à toutes les problématiques, Grégory a donc conçu un éco-systeme de composants ETL et c’est comme cela que Gyroscops est né.

Les différentes composants classifiés de Gyroscops

Grâce à ces composants, il est désormais possible de mettre en place des outils indépendants autour de vos applications existantes appelés Satelittes. Ces Satellites peuvent ensuite communiquer entre eux, être « monitorer » en créant des journaux (logs), en gérant des rejets de traitement et en suivant les états d’exécution.

Cet outillage permet de configurer facilement des flux de données avec le language YML pour ensuite générer le code PHP. Ce code généré sera utilisé dans ces Satellites. Cette approche permet de réduire la complexité et de facilité la maintenance. Dans un futur (très) proche, une interface utilisateur permettra de configurer ces fichiers YML et donc de générer ce « low-code » très facilement.

Sylius sans e-commerce pourquoi et comment ?

Xavier nous fait un retour sur la présentation de notre ami Maxime Huran qui nous parle de Sylius sans e-commerce.

Maxime nous a présenté une approche surprenante de Sylius en lui retirant les fonctionnalités e-commerce pour en faire une application front et back-office pouvant servir de CMS ou de solution métier. Après plusieurs années d’utilisation de Sylius pour du e-commerce,  Maxime et l’équipe de Monsieur Biz ont conçu plusieurs extensions sur cette solution qui a fait ses preuves et continue son bout de chemin à la vitesse d’une fusée !

Un « plugin Sylius » est simplement un bundle Symfony dépendant de Sylius, voici une liste des différents plugins Sylius vus lors de cette conférence :

  • Admin Better Login qui permet de personnaliser la page de connexion,
  • Rich Editor qui permet d’avoir des contenus avancés via un éditeur « riche »,
  • Home Page qui permet d’administrer la page d’accueil,
  • CMS page qui permet de créer des contenus avec Rich Editor,
  • Menu qui permet d’administrer les différents menus frontend,
  • Alert Message qui permet d’ajouter un message d’alerte sur le front en haut de page, 
  • Settings qui permet d’avoir une interface pour ajouter des réglages par canaux,
  • No Commerce qui permet de désactiver les fonctionnalités e-commerce.

Une panoplie d’outils très intéressant qui risque d’envahir de nombreux Sylius. Pour ceux qui veulent en savoir plus, vous pouvez retrouver les slides de la présentation de Maxime sur son site ainsi que le projet complet qui a été présenté sur ce dépot GitHub.

L’architecture ESA : le futur des API web

Pendant que certains étaient à la conférence sur Sylius, Clément était dans l’autre salle pour suivre celle de Kevin Dunglas.

ESA (pour Edge-Side APIs) est une nouvelle architecture d’API web, combinant des technologies existantes, certaines déjà en place dans les navigateurs, d’autres créées par Kevin Dunglas et d’autres encore inspirées de l’écosystème Javascript. Cette architecture a pour but de créer des applications plus rapides et moins énergivores.

Les piliers d’ESA sont :

  • la pré-génération (compilation) des fichiers JSON : l’utilisateur reçoit la donnée aussi vite que possible même si elle n’est pas totalement à jour, et sa requête reconstruit un nouveau cache pour la personne suivante.
  • les ressources atomiques, c’est à dire le morcellement des documents en plusieurs petits fichiers pour tirer parti du multiplexing de HTTP 3, et aussi pour limiter la pré-génération à quelques fichiers essentiels.
  • la progressivité, c’est à dire assurer le fonctionnement quelque soit la plateforme et ses fonctionnalités, pour ne pas restreindre l’application aux nouveaux appareils, et si possible ralentir notre consommation de nouveaux appareils.
  • le pré-chargement, notamment avec un nouvel attribut qui indique au navigateur quelles pages et ressources sont essentielles et doivent être téléchargées dès la première visite.
  • le push, c’est-à-dire dynamiquement renvoyer des données à jour quand elles changent, grâce au protocole Mercure et Websocket.

Ces plateformes d’APIs ont ensuite vocations à être déployé sur des serveurs d' »Edge Computing », une nouvelle sorte de CDN dont le but est d’être aussi proche possible géographiquement des utilisateurs, pour réduire le temps de chargement et la consommation d’énergie et augmenter la redondance.

Qualité front, pourquoi c’est aussi le travail du dev back !

En cette fin de 2ème jour, nous avons pu assister à la conférence de Martin Supiot et Elie Sloïm. Ils nous ont parlé de différentes règles pour améliorer nos sites. Martin et Elie nous ont montré des bonnes pratiques illustrées par des contre-exemples tel qu’un message d’erreur non parlant pour l’utilisateur.

Au fil des années, Elie Sloïm avec sa société Opquast ont constitué une check-list de bonnes pratiques ergonomiques, de SEO, d’éco-conception, d’accessibilité, de performance et de sécurité. On vous conseille vivement d’utiliser cette liste sur vos projets : OpQuast Checklist.

En conclusion

Ce Forum PHP 2021 fut un grand cru, riche en apprentissage (comme chaque année) où toute l’équipe technique a pu échanger avec des confrères et participer à des conférences sur divers sujets toujours autour de notre langage préféré : le PHP.

Un grand merci à tous les bénévoles de l’AFUP sans qui cet événement n’aurait pas eu lieu. On se donne rendez-vous l’année prochaine dans un nouveau lieu :

Sortie agence aux Estables

Suite à une année 2020 dans une contexte particulier où nous n’avions pas pu faire de sortie avec toute l’équipe, pour cette rentrée 2021/2022, nous avons pu organiser une sortie avec tous les collaborateurs aux Estables (43). Retour en photos sur ce séjour.

Jour 1

Pour débuter ce séminaire entreprise, nous nous sommes rendus dans la station des Estables sur les hauteurs de notre département, la Haute-Loire. Nous avons débuté notre séjour avec une visite d’un élevage de Fin Gras du Mézenc AOP avec comme guide l’exploitant Bernard Bonnefoy qui nous a présenté ses bêtes dans son champ ainsi que ce fameux foin d’altitude riche en plantes aromatiques.

Vaches Aubrac sur le plateau des Estables
Découverte de l’exploitation avec Bernard

Ensuite nous sommes allés visiter la maison du Fin Gras à Chaudeyrolles au pied du Mont Mézenc à la limite ardéchoise, pour découvrir l’histoire cet élevage traditionnel issu d’un savoir-faire ancestral.

Maison du Fin Gras à Chaudeyrolles

Nous nous sommes rendus à La table de Vallès pour nous restaurer à midi,  pour ensuite enchainer avec un petite promenade à la cascade de Chaudeyrolles.

Cascade de Chaudeyrolles

L’après-midi, sous un ciel dégagé, nous sommes revenus aux Estables non loin de la maison forestière pour nous lancer dans l’ascension du Mont-Mézenc (1753m d’altitude), endroit le plus haut du département de la Haute-Loire. À son sommet, nous avons pu contempler les hauteurs altiligériennes et ardéchoises.

Vue du sommet du Mont Mézenc

Et pour finir cette première journée, nous sommes redescendus dans la station des Estables où nous étions attendus au gîte à la ferme pour un repas chaleureux et très conviviale. Nous avons pu goûter les spécialités locales : sirop de foin, terrine, fromage de chèvre…

Jour 2

En ce second jour, nous avons débuté la journée avec l’ascension du sommet du Mont Gerbier de Jonc où la Loire prend sa source située à une petite dizaine de kilomètre de la station des Estables. À l’arrivée de cette montée plus courte que l’ascension du Mont Mézenc mais plus escarpée, nous avons pu à nouveau regarder les magnifiques paysages de notre région.

Mont gerbier de Jonc
Vue du sommet du Mont gerbier de Jonc

Après cette petite balade, nous sommes redescendus aux Estables pour nous restaurer et nous nous sommes réunis dans l’Auberge des fermiers du Mézenc pour goûter les saveurs de notre région. 

Et pour conclure ces 2 jours de découverte, ou redécouverte pour certains, de ce territoire du Mézenc, l’après-midi nous sommes allés faire le Parcours Tarzan non loin du bourg des Estables où nous avons pu nous défier sur les différents parcours et autres tyroliennes de ce parc accrobranche créé dans les années 90. 

Parcours Tarzan des Estables

Les plugins Sylius indispensables pour votre e-commerce

Vous le savez probablement, Sylius est une plateforme e-commerce entièrement personnalisable. Sa popularité ne cesse d’augmenter, en témoigne le niveau de contributions sur sa marketplace. Mais alors, quels plugins devrais-je installer sur mon site e-commerce ?

À travers cet article, Kiboko vous propose un tour d’horizon des plugins les plus utiles sur Sylius, voir indispensables pour certains !



Plugins Sylius

Plugins « catalogue »

Ces plugins « catalogue » vont vous aider dans la création de vos catalogues produits via un fichier statique ou par le biais d’Akeneo. Vous avez également ici un plugin qui permet de regrouper vos produits en package :



Plugins Sylius

Plugins « feature CRM »

Sylius n’est pas un CRM, mais vous avez tout de même la possibilité d’ajouter des fonctionnalités pouvant vous simplifier la gestion de données clientèle et l’ajouter d’actions possibles en back-office :



Plugins Sylius

Plugins marketing

Afin de rendre une boutique plus attrayante, l’ajout de quelques fonctionnalités peut s’avérer très intéressant. Avec ces puglins, vous pouvez par exemple améliorer l’expérience utilisateurs, obtenir des statistiques sur les conversion ou encore, améliorer le contenu de certaines pages…



Plugins Sylius

Plugins de paiement

Le manque de solution paiement peut être un frein à la conversion des commandes. Ajouter des modules de paiement permet alors de proposer à ses clients plus de choix pour régler ses achats. En plus de Paypal (natif Sylius) on peut facilement ajouter d’autres solutions de paiement afin de conclure des transactions :



Plugins Sylius

Plugins de livraison

Proposer à ses clients diverses solutions de livraison demeure tout aussi important, sans l’optique d’améliorer le taux de conversion et d’optimiser le traitement des commandes. Pour répondre à ce besoin, ces plugins peuvent vous être utiles :

Autres plugins Sylius

Enfin, en fonction des usages de la boutique et de la volumétrie du catalogue, 2 autres plugins peuvent vous permettre d’optimiser votre activité e-commerce :



En savoir plus

Si vous avez des questions, ou si vous souhaitez en savoir plus sur les plugins Sylius, n’hésitez pas à prendre contact avec nous.

Si Sylius vous intéresse, nous sommes entièrement à votre écoute et nous serions heureux d’échanger avec vous à propos de vos idées.

Kiboko au ForumPHP 2020

Une partie de l’équipe technique a participé au Forum PHP 2020 organisé par l’AFUP. L’équipe est enthousiaste de vous présenter notre retour d’expérience et les différents sujets qui nous ont marqués.


Conférences PHP2020

Voici une liste non exhaustive des supports des différentes conférences auxquelles nous avons pu participé :

Cette année fut assez particulière en raison du contexte sanitaire, ne pouvant s’organiser en présentiel, les conférences ont eu lieu à distances. Nous avons choisi de mettre en lumière une nouveauté de l’AFUP pour faciliter les échanges entre les participants du ForumPHP.

WorkAdventure

La mise en place d’un WorkAdventure dédié au forum PHP2020 nous a donné la possibilité de rencontrer les partenaires sur leur stand et de discuter via webcam interposée avec les autres participants. Grâce à cela, nous avons pu croiser de vieilles connaissances que nous rencontrons chaque année au ForumPHP. Encore merci, l’AFUP pour cette belle initiative !


Conférence Php 8

Cette édition fut également très importante avec l’arrivée d’une nouvelle version majeure de Php. Gabriel CARUSO a profité de ce ForumPHP pour nous présenter cette dernière version.

Vous pouvez découvrir les slides de sa conférence ici.

Grâce à l’intervention de Gabriel, nous avons pu avoir un résumé complet des fonctionnalités majeures voyant le jour sous cette nouvelle version. Nous avons notamment relevé l’utilisation des « Named Argument » :

Les arguments nommés (en français) permettent de passer des arguments à une fonction en fonction du nom du paramètre, plutôt que de la position du paramètre. Cela rend la signification de l’argument auto-documentée et l’ordre des arguments devient indépendants ce qui permet de sauter arbitrairement les valeurs par défaut.


Résumé du Forum PHP2020

Contexte particulier, conférences particulières pour cette édition spéciale. Mais comme chaque année, l’équipe a pu participé à de nombreuses conférences et a su apprécier le contenu de cette édition. Nous serons de retour en 2021, en espérant pouvoir être à nouveau dans les salles de conférences.

En savoir plus

Vous avez quelques questions ? Nous sommes entièrement à l’écoute de vos demandes et de vos problématiques, n’hésitez pas à prendre contact avec nous. Nous serions heureux d’échanger à propos de vos idées.

Kiboko est capable de vous accompagner dans la transformation numérique de votre entreprise. Nous avons également la capacité de mettre en place des logiciels pour la gestion B2B de vente, de logistique, de suivi clientèle et de business intelligence.

AFUP Day Lille 2020

Nous continuons notre tour de France des AFUP Day avec la troisième étape à Lille toujours en visioconférence. Ces conférences ont eu lieu le 26 juin 2020, voici le programme complet des conférences.


Retour d’expérience

Comme pour l’AFUP Day Nantes et Lyon 2020, une partie de l’équipe technique de Kiboko a également participé à cette édition Lilloise. Nous avons choisi de vous faire un retour d’expérience en choisissant chacun une conférence :

Symfony 5 par Titouan GALOPIN

Titouan nous a présenté les nouveautés de Symfony 5 lors de sa conférence. Xavier a choisi de vous parler du composant Symfony Mailer, en place depuis Symfony 4.3 et qui a évolué dans la version 5 de Symfony avec la possibilité d’ajouter le Mime component. Avec ce dernier composant, on peut désormais concevoir des emails beaucoup plus facilement via un object Email. il est également possible d’utiliser l’objet TemplatedEmail qui, comme son nom l’indique permet de créer des templates emails en twig. Pour aller encore plus loins, il est aussi possible d’ajouter le composant css inliner extension permettant de mettre en forme des emails comme des sites webs via des feuilles de style.

C’est grâce à ces nouveautés qu’aujourd’hui nous pouvons concevoir nos emails en créant des templates twig avec des assets et du style. Elles nous permettent (enfin) de générer un template email compatible avec les différents clients emails.  Plus besoin de créer un ficher .html avec du style en dur pour concevoir son email. Vous pouvez également lire un article de Gary Houbre qui aborde ce sujet.

Sauvons le Web : décentralisons ! par Kevin DUNGLAS

Clément nous fait un retour sur la conférence de Kévin :

Le web va mal : même Tim Berners-Lee, son inventeur, le dit ! Autrefois un far-ouest libre partagé entre plusieurs sites et acteurs différents, il y a maintenant seulement 5 mega-corporations assurant tous nos besoins, et des milliers de petits poissons qui se partagent les 5% restants. Afin d’éviter tout incident diplomatique et sous couvert de protection de la veuve et de l’orphelin, les GAFAM appliquent des systèmes de censure automatisés entravant la liberté d’expression des utilisateurs. Et à ce petit jeu, les réseaux risquent d’énormes sanctions. Les robots se retrouvent obligés de ratisser large pour supprimer tout ce qui ressemble de près ou de loin à du contenu offensant. Et pour peu qu’un pays ait un nombre alléchant d’utilisateurs potentiels, son gouvernement définit lui-même les contenus illicites : par exemple sur Facebook, les groupes Kurdes en conflit contre Daesh n’ont pas le droit de s’organiser du fait qu’ils soient considérés comme des terroristes par le gouvernement Turque.

Nous laissons de plus en plus de pouvoir aux GAFAM et les télécrans leur permettent de s’immiscer 24/7 dans notre vie privée. Si nous voulons éviter l’enfer du cyberpunk et du système de crédit social, il faut décentraliser le web : se passer autant que possible des GAFAM et rechercher des solutions libres, indépendantes et hébergeables chez soi.

Kévin Dunglas rappelle que la stack native du web est faite pour être indépendante, il faut l’utiliser ! Une petite résistance se crée et des alternatives apparaissent : Mastodon à la place de Twitter, Mobilizon à la place des événements Facebook et caetera. Il reste cependant difficile de lutter contre les services d’hébergements d’Amazon ou de se passer du jour au lendemain d’Instagram par exemple. Mais souhaitez-vous vraiment vivre dans un monde où l’anonymat n’existe plus ? Dans un monde où il faut renseigner son numéro de sécurité sociale pour poster sur Twitter ou accéder à un site pour adulte ?


Vous pouvez retrouver nos retours d’expériences des autres évènements AFUP Day 2020 :
AFUP Day Nantes
AFUP Day Lyon

AFUP Day Lyon 2020

Nous continuons notre tour de France des AFUP Day 2020 avec la deuxième étape à Lyon toujours en visioconférence. Ces conférences ont eu lieu le 24 juin 2020, voici le programme complet des conférences.


Retour d’expérience

Comme pour l’AFUP Day Nantes 2020, une partie de l’équipe technique de Kiboko a également participé à cet événement. Nous avons choisi de vous faire un retour d’expérience en choisissant chacun une conférence :

La programmation défensive ou l’art de ne pas se faire confiance par Alexandre BALMES

Camille a choisi la conférence d’Alexandre BALMES présentant la programmation défensive ou l’art de faire confiance en personne, même pas en son propre code. Il nous a présenté la librairie « Safe » qui se trouve très intéressante car, aujourd’hui beaucoup de fonctions natives de php ont été écrites avant l’ajout de la gestion d’exception (ce qui fait que certaines fonctions peuvent renvoyer « false » au lieu de « true » en cas d’erreur). Cette librairie réécrit ces fonctions et permet de renvoyer des exceptions qui rendent les erreurs bien plus pratiques à identifier.

Alexandre nous a également présenté différents outils d’analyses statiques qui permettent d’améliorer grandement la qualité de son code :

  • PHP-CS-Fixer qui permet d’améliorer son code pour qu’il réponde au standards php récents (PSR)
  • php stan qui permet une analyse statique du code et de détecter de potentiels erreurs
  • rector php qui est un outil qui permet de refactoriser son code

Ainsi que divers autres outils d’analyse statique. Tous ces outils sont faits pour avoir une approche défensive et d’anticiper les potentiels bugs qui peuvent échapper aux développeurs.

6play_API-v2-Final(1).doc par Benoit VIGUIER

Cette conférence, sélectionnée par Clément, sur les API employées pour M6 Replay s’intitulait « 6play_API-v2-Final(1) » pour nous rappeler qu’un concept initial n’est jamais éternel et que ce qui semblait être une bonne idée peut se transformer en cauchemar ingérable, uniquement descriptible comme un gros plat de spaghettis indémêlables.

Tout a commencé par un schéma pour représenter les connections entre les différentes fonctionnalités, ce qui aide à voir quelles informations l’API devrait fournir. En 2011 n’y avait que M6play, et le schéma était simple, mais depuis une dizaine d’autres services sont venus s’y greffer. Benoit a ensuite parlé des différents types d’API, de leurs avantages et inconvénients et nous a expliqué les différentes itérations par lesquelles les développeurs sont passés pour correspondre au mieux aux besoins de l’équipe Front-end. Par exemple, les API de type REST n’étaient pas adaptées car elles revenaient à utiliser Doctrine et provoquaient trop d’appels, donc trop de données pour les téléphones. C’est un débat constant entre des outils trop spécialisés ou trop génériques.

La conférence s’est terminé par la citation : « Make interfaces easy to use correctly and difficult to use incorrectly », en conclusion,  faire en sorte que l’utilisateur ne puisse pas se tromper, abuser de l’API ou se limiter simplement s’il ne comprend pas comment s’en servir.

DevOps ? Je n’ai jamais voulu faire ça, et pourtant… par Sofia LESCANO

Julien a choisi la conférence de Sofia LESCANO. Elle nous a présenté son retour d’expérience et sa montée en compétence dans le domaine du dev-ops, autrement dit, la gestion du serveur/monitoring des applications et la qualité du code. Elle nous a fait part qu’à ses débuts, elle était réticente quant à l’apprentissage de ce domaine. Mais c’est en découvrant l’immense panoplie d’outils permettant de faciliter et automatiser l’infrastructure de ses projets que Sofia s’est découvert une passion pour le dev-ops.

En faisant un peu de veille technique on peut comprendre facilement comment gérer le stockage de fichier, les bases des données, la puissance de son serveur, de manière qualitative. Sofia, pendant ce talk nous a prouvé que devenir dev-ops en étant à la base développeur n’est pas insurmontable et qu’il y a matière pour apprendre en s’amusant et améliorer l’écosystème de nos projets.

Tu n’es pas un {framework} développeur ! par Thomas Dutrion

Nicolas nous fait part de la conférence de Thomas qui a été présenté en fin de journée. Il nous a rappelé que nous étions des développeurs PHP avant d’être développeurs de tel ou tel framework (coucou Symfony et Laravel). En effet, dans les offres d’emploi et dans les CV, il n’est pas rare de voir marquer « Recherche développeur Symfony » dans le cas d’une offre d’emploi ou « Développeur Symfony » sur un CV ou sur un profil Linkedin. Et si on remplaçait ça par « Recherche développeur PHP » ou encore mieux par « Recherche développeur » ?

Pour illustrer ses propos, Thomas a fait quelques petits comparatifs sur un exemple de code avec quelle syntaxe et méthode à adopter si on utilise Symfony ou Laravel. Il a même montré une équivalence de code en PHP dénué de tout framework et la logique était bien évidemment la même.

Sois un développeur PHP avant d’être un développeur Symfony/Laravel !

Le partage de connaissance en entreprise. par Guillaume Thirard

Xavier a sélectionné cette conférence car les expériences vécues et présentées par Guillaume sont très proches de celles déjà rencontrées dans le passé. Et il est vrai que transmettre un savoir-faire à un collaborateur est devenu un point sensible et parfois chronophage, mais des méthodes et des outils existent pour faciliter cela.

Documenter, automatiser et lister les différentes tâches ou actions à réaliser permettent de faciliter l’arrivée d’une nouvelle recrue. Ces documentations sont désormais indispensables pour mettre en place les outils modernes que nous utilisons aujourd’hui et comme l’indique Guillaume il ne faut pas oublier de la maintenir et de la mettre à jour. Un autre point très intéressant pour transmettre son savoir est de faire des codes review constructives, en posant des questions et échangeant avec le reviewer.

D’autres méthodologies existent pour faciliter l’apprentissage tel que le pair programming, le mob programming, participer à des conférences internes ou externes. À titre d’exemple, chez Kiboko, depuis le début de l’année nous avons mis en place 2 à 4 Kibokast par mois où un technicien nous présente un sujet à toute l’équipe (souvent choisi suite à un code review ouvrant cette discussion).


On se donne rendez-vous dans quelques jours pour les conférences des autres AFUP Days 2020 :
AFUP Day Nantes
AFUP Day Lille

AFUP Day Nantes 2020

Nous lançons notre série d’articles sur les AFUP Day 2020 sous un format exceptionnel. En effet, cette édition 2020 a également été perturbée par le COVID-19 et a dû s’adapter pour faire une version 100% en ligne. Grâce à cela, nous avons pu participer aux 4 éditions du cycle de conférences de l’AFUP.

Nous commençons donc notre premier volet des AFUP Day avec l’édition Nantaise qui a eu lieu le 19 juin 2020, vous pouvez consulter le programme complet des conférences.

Dans cette édition, Grégory a pu faire une conférence sur les synchronisations entre différentes applications.

Synchroniser ses applications facilement, 3 ans ont passés. par Grégory Planchat

Lors du PHP Tour 2017 Nantes, Grégory avait présenté le composant akeneo/batch. (revoir la conférence)
Revenons sur 3 ans supplémentaires d’usage, de réflexions et de refactorisation qui ont abouti à la création d’un framework spécialisé.

Dans des environnements de plus en plus inter-connectés, de plus en plus hétéroclites, nous remarquons l’émergence de l’utilisation des PWA, la généralisation des API et des tâches en files d’attentes asynchrones. Là où les solutions pour interroger de petits volumes de données dans des bases distantes commencent à atteindre une certaine maturité.

En plus de la conférence de Grégory, une partie de l’équipe technique de Kiboko a également participé en tant que spectateur. Nous avons choisi de vous faire un retour d’expérience en choisissant chacun une conférence :


Retour d’expérience :

Les structures de données en PHP par Frédéric BOUCHERY

Lors de cette AFUP Day 2020, Julien a choisi de présenter la conférence de Frédéric Bouchery, développeur depuis 1983, présent aux événements AFUP comme tous les ans. Cette fois-ci, Frédéric nous a présenté les avantages et inconvénients de l’utilisation des tableaux, des collections intégrées dans PHP (la SPL) et d’une extension intéressante : PHP-DS. Dans cette conférence, nous avons remarqué qu’il n’existe aucune solution parfaite pour manipuler ces objets mais qu’il est nécessaire de bien les connaître pour savoir quand les utiliser selon le contexte. Ce talk « Les structures de données en PHP' » fut très enrichissant puisque nous sommes souvent amenées à traiter de grosses quantités de données lors des synchronisations dans les différentes applications.

Une conférence avec réalisation digne d’une chaine météo :

Mon email devient dynamique ! par Patrice DE SAINT STEBAN

Nicolas a sélectionné pour vous cette conférence sur l’AMP (Accelerated Mobile Pages). Il s’agit d’une nouvelle technologie qui a été inventée par Google dont le but principal est d’accélérer le temps de chargement d’une page web sur mobile. Pour arriver à cela, le JS est chargé de manière asynchrone alors que l’HTML et le CSS sont chargés en premiers lieux pour avoir un rendu le plus vite possible d’une page.
Cette technologie est également utilisée depuis peu dans l’envoie de mail pour les rendre dynamiques. L’utilisation de ces mails devrait être de plus en plus courante dans les prochaines années, notamment dans le milieu professionnel. L’exemple simple de cet usage est l’envoi d’un questionnaire en ligne. Habituellement, on clique sur un lien qui nous envoie dans un autre onglet. Avec les mails dynamiques, ces questionnaires sont directement intégrés dans les mails, pas besoin d’ouvrir un autre onglet.

Un site internet pour répondre aux défis actuels : le greenIT, l’accessibilité, la performance et le référencement ! par Hervé BOISGONTIER

Xavier nous a sélectionné cette conférence, elle aborde les 4 points de vue lors de la conception un site web. Aujourd’hui la conception d’un site nécessite de prendre en compte de nombreux critères pour avoir un produit abouti et efficace. Hervé nous précise que l’accessibilité d’un site est un aspect trop souvent négligé par les créateurs de site. Pour rendre un site utilisable par tous types de handicaps et au plus grand nombre, plusieurs standards existent :
Standards WAI de W3C
Standards RGAA en France

En plus des règles d’accessibilité, les performances d’un site sont désormais une problématique très importante pour le référencement notamment pour le SEO. C’est même devenu un critère d’indexation majeure dans l’algorithme de Google. Pour améliorer ce point, nous avons accès à l’utilitaire en ligne Google Page Speed qui nous permet d’analyser un site en version mobile et desktop afin d’optimiser et d’identifier les éléments ralentissant un site.

Vos tests sont-ils de qualité ? Découvrez-le avec le mutation testing. par Julien BRAURE

Mutations créées, mutants capturés, mutants échappés… sont des sujets qui intéressent Clément. Ce n’est pas un épisode de X-Men, mais bien la conférence de Julien Braure sur le Mutation Testing en PHP. Tout le monde s’accorde à dire qu’écrire de bons tests est compliqué : on oublie parfois certains recoins et particularités de son propre code. Et dans la précipitation on écrit une assertion qui revient à tester si 1 est égal à 1.

Le Mutation Testing aide à écrire de bons tests en modifiant de petites portions du code testé. Par exemple, un changement de type sur une variable, une incrémentation sur un entier, etc.
Un utilitaire en ligne de commande (Infection) va automatiquement saupoudrer notre code de petites erreurs et lancer les tests pour rapporter le nombre de mutations. Si le test passe toujours, on dit qu’un mutant « s’est échappé », et le test devra être revu pour détecter l’anomalie. L’objectif est donc de capturer le plus de mutants en écrivant plus d’assertions aux bons endroits dans le but d’éviter que la moindre coquille ne se retrouve en production. De cette façon la mutation force à écrire des tests qui parent à toutes éventualités et permet d’éviter des comportements imprévus de l’application. L’interface en mode texte ne paie pas de mine, mais avec un peu d’imagination on se croirait dans le Wasteland.


On se donne rendez-vous dans quelques jours pour de nouveaux retours d’expériences sur les conférences des autres AFUP Day 2020 :
AFUP Day Lyon
AFUP Day Lille