https://youtu.be/XYoR5kG2gek
Rejoignez l'association pour avoir accès à l'entièreté des conférences du FoP Day 2023 ! : https://friendsofpresta.org/
Dans cette conférence Fabien Vallon (Lead Product Manager Open Source PrestaShop) & Jonathan Lelièvre (Technical Lead Open Source PrestaShop) vous présente les dernières innovations, améliorations et fonctionnalités de PrestaShop.
On vous laisse écouter la conférence présentée en exclusivité par la team Prestashop pour découvrir toutes les nouveautés pour optimiser vos sites e-commerce et rester à la pointe de l'innovation technologique ;)
Retrouvez-nous l'année prochaine pour une 4ème édition du Friends Of Presta Day qui promet d'être encore plus inoubliable ! : https://friendsofpresta.org/
4. MCO
1. Frameworks (Priorité 1)
2. Interfaces de Model et Context (P2)
3. Frameworks (round 2) (P2)
4. Symfony dans le FO
5. TITRE
Mise à jour de nos frameworks /
dépendances “PHP”
1. Garder nos frameworks à jour :
a. Sécurité
b. Faciliter le développement PHP
2. Target 1 : PHP 8.1, PHP 8.2 , SF 5.4
Analyse de nos dépendances
3. Autres frameworks
SwifMailer
Symfony Mailer
api-platform
composer
FOSJsRoutingBundle
jwt
mobiledetectlib
emogrifier
html2text
property access (symfony)
phpunit
6. TITRE
PHP 8.1 comme version minimum
Attributs PHP, union/intersection types, propriétés de classe typés, arguments nommés,
match, array functions, …
Constructor property promotion + autowiring
7. Interfaces de Model et Context (P2)
Model & context
1. ObjectModel a bien servi, et sert encore,
mais on aimerait bien moins le voir…
2. Le Context legacy a quelques côtés
pratiques, mais il cause aussi beaucoup de
problèmes
3. Les deux continuent d’être utilisés dans du
code moderne, générant ainsi toujours plus
de dette technique
8. TITRE
Cleaner le code récent dans le BO
- Démarrage d’une uniformisation des interfaces de nos models et
repositories associés https://github.com/PrestaShop/ADR/pull/33
- L’accès au données devient indépendant de l’implémentation
(ObjectModel, Doctrine, NoSQL, …)
- Diviser le Context pour mieux régner et fournir ce qui est utile ni plus
ni moins (sous “contextes” Language, Employee, …)
- Code plus clean, moins de dépendances et de bug en CLI et install,
optimisation progressive du container
- On commence par des accès en lecture seulement, mais on étendra
sûrement aux actions d’écriture
9. Framework round 2
Symfony 6.X / API Platform 3
Pros :
- Composants Symfony récents (DI, Email,
Translation, plus sécurisé, plus optimisé)
- Upgrader API-Platform vers sa dernière version
- Pleine utilisation de PHP8
Cons :
- Pas LTS probablement (mais dépendra de la date de release)
- Grand saut de 4.4 à 6.4 (tempéré néanmoins par certaines méthodes
ajoutées pour la rétro compatibilité)
10. Symfony dans le FO
1. A titre expérimental, uniquement le container
dans un premier temps et conditionné par un
feature flag (désactivé par défaut)
2. Des benchmarks de performances seront
fait pour mesurer l’impact
3. Permettra d’accéder aux services/outils déjà
disponibles dans le BO
4. Dans un deuxième temps on expérimentera
sur un controller Symfony en FO (sans
enlever le legacy)
12. TITRE
Cart rules
Refonte du moteur de calcul mise en pause le temps de tout spécifier avec
précision
Migration édition des Cart Rules dans le BO (* dans la 9.0)
- commandes CQRS et couverture par tests *
- migration page vers Symfony *
- amélioration ergonomie *
- Nice to have: ajout de features
16. P.22
TITRE
Remplacer Legacy Layout par Symfony layout
1. Ne plus avoir de mix Smarty & Twig dans les page Symfony du BO
2. Initialisation du context gérée par Symfony, plus besoin de se reposer sur
un “faux” controller Legacy
3. Unifier la technologie
4. Préparer le terrain pour de nouvelles fonctionnalités (notifications, menu à
plat, notifications asynchrone …)
5. Permettre la gestion de l’authentification par Symfony
18. P.26
TITRE
New API, pourquoi?
Webservices actuels:
- APIs simple cruds qui éditent directement les tables
- Sécurité limite (APIKey en public) et obsolète
New API (nom reste à définir)
- API OAuth dédiée à la communication serveur/serveur
- Endpoints basés sur les commandes CQRS afin d’apporter plus de logique
métier dans ces APIs
- Améliorer et sécuriser les communications entre PrestaShop et des
applications externes (gestionnaire stock, comptabilité, …)
19. TITRE
New API ( MVP )
1. Authentication server & Resources management
2. Faciliter le mapping CQRS <-> endpoint
3. Externalisation de la configuration des endpoints dans un module natif
4. Prévoir la suite : scopes définis, serveurs d’Auth externes ( keycloak, ory
Hydra ….)
21. TITRE
Nous avons besoin de vous
Implémentation endpoints
1. Tutorials
2. Chan slack dédié
3. Kanban / suivi
22. TITRE
A venir (après le MVP)
1. Scopes définis
2. Interfaces d’administration
3. Faciliter l’intégration de serveur
externe ( interfaces, sync,
gateway )
4. Dans de prochaines versions,
étendre les méthodes
d’Authentification pour pouvoir,
notamment, utiliser ces APIs
dans le BO
23. Et encore
1. Hummingbird
2. Gestion des modules / upgrade
3. Après la v9 : FO API, Cache
management, Performances , conf
management, data management
4. Authentification via Symfony
5. Design system
25. One more thing…
1ère PrestaShop Developer Conference organisée le
jeudi 30 novembre à Paris
https://bit.ly/prestashopdevconf
- Développement de module / développement de thème
- Performance
- Solutions pour les développeurs
- Nouvelles fonctionnalités PrestaShop
- Sécurité
- Déploiement - CI/CD
Vous êtes invités à y assister et à soumettre vos sujets
27. TITRE
Authentification (NTH)
1. Mettre au normes de sécurité
2. Gestion unique de la session / authentification dans le BO
3. A terme permettra l’extension et apporter plus de variété dans le login ( SSO
, ConnectID … )
4. Simplifiera l’utilisation de la future API dans le BO