Sign up
Log in
Discover Bonzai
Terms of Use
Legal notice
Privacy
matyo91
matyo91
10
Subscribers
Facebook
X
Whatsapp
Telegram
👉 You must follow matyo91 to access chat.
Feed Shop About

🚀 De zéro à héros avec Sylius : Au cœur de l'atelier sur les essentiels pratiques

Facebook
Twitter
Whatsapp
Telegram
1 week ago

Si vous êtes nouveau à Sylius ou cherche à solidifier vos fondations, Gracjan Józefczyk, développeur bitbag et contributeur clé de Sylius. C'était un atelier à Sylius Days 2025 était une masterclass en architecture de commerce électronique. 💡

Maîtrice Sylius Fundamentals: de la configuration des ressources aux grilles

Dans un atelier pratique de Sylius dirigé par le contributeur clé et créateur de l'Académie Sylius Grazian, les développeurs de Symfony expérimentés ont exploré le fondement de Sylius par le codage en direct, les idées architecturales et les stratégies de mise en œuvre du monde réel. Ce post distille les connaissances techniques de base de la session - a évoqué la compréhension de la double identité de Sylius en tant que plate-forme et cadre, la puissance de la ressourcebundle et de la grille et des approches de personnalisation efficaces.

Contexte de problème:

Sylius est une solution de commerce électronique basée sur Symfony qui vise à être à la fois adaptée aux développeurs et à l'entreprise. Cependant, le démarrage ou le prolonger (par exemple, la création de ressources personnalisées ou d'interfaces) semble souvent intimidante en raison de son architecture et de sa dépendance d'opinion sur ses propres paquets. Les développeurs entrant dans un projet Sylius doivent d'abord comprendre comment les entités, les services et les configurations de base interviennent pour éviter la friction plus tard.

Brallage de la solution:

  • Comprendre Sylius comme cadre et plate-forme

Sylius fournit un frontage de boutique basé sur bootstrap, un panneau d'administration et une API complète hors de la boîte. Il combine la flexibilité d'un cadre Symfony avec les capacités de plug-and-play d'une plate-forme de commerce électronique.

Panneau d'administration: utilise des pare-feu Symfony Security pour faire la distinction entre l'administrateur et les connexions des clients.

API: Construit avec la plate-forme API. Les points de terminaison sont exposés à la fois pour la boutique et l'administrateur, avec une séparation claire via / shop et / admin préfixes.

  • Configuration des ressources avec ResourceBundle

Le SyliusResourceBundle résume les opérations de crud communes en tirant parti des déclarations d'entités basées sur la configuration. Pour définir une nouvelle ressource:

Sylius_Resource: ressources: app.brand: Conducteur: doctrine / orm Cours: Modèle: App \ Entity \ Brand

Ce bloc unique permet:

  • Instanciation du contrôleur (via ResourceController)

  • Formtype et référentiel en usine

  • Service Autoconfiguration et routage

Bonus: utilisez le débogage: Sylius: ressource pour inspecter les liaisons des ressources.

  • Exposition des routes avec la configuration de routage Symfony

Une fois déclaré, les itinéraires de ressources sont exposés via:

sylius_admin_brand: Ressource: "Sylius.resource" Type: Sylius.Resource Section: Admin Alias: app.brand Modèles: Syliusadminbundle: Crud Redirection: mise à jour grille: sylius_admin_brand

  • Listing de données avec Gridbundle

SyliusgridBundle permet des grilles d'administration pour la visualisation et l'interaction des données (filtres, actions, opérations en vrac).

Sylius_Grid: Grides: sylius_admin_brand: conducteur: Nom: Doctrine / Orm Options: Classe: App \ Entity \ Brand champs: nom: Type: chaîne Étiquette: sylius.ui.name Filtres: nom: Type: chaîne

Les grilles s'intègrent parfaitement à ResourceBundle. Ils soutiennent:

  • Filtres de colonne

  • Actions en ligne et en vrac

  • rendu frontal facile via des modèles basés sur bootstrap

Extensibilité et pratiques communautaires

Des cas d'utilisation avancés présentés lors de l'atelier:

  • Migration de Sylius 1.14 à Sylius 2 (changements majeurs dans le rendu de la grille, internes de ressources))

  • Utilisation de nouvelles déclarations de ressources basées sur des attributs PHP (# [asresource]) pour supprimer la verbosité YAML

  • Remplacer Winzou State Machine par Symfony Workflow pour les transitions de commande

  • Stratégies d'intégration pour CMS, PIM ou Backends de recherche (Elasticsearch)

Une force clé de Sylius est sa communauté active, le maintien des plugins open source (bande, interface utilisateur d'administration, etc.) et contribuant à GitHub et à Slack Support.

Résultat / Impact: Les participants sont partis avec une configuration de Sylius prête pour la production, un environnement Docker configuré et des connaissances pratiques à:

Étendre Sylius avec des entités personnalisées:

  • Utiliser la configuration déclarative pour un crud rapide

  • Personnaliser les grilles d'administration

  • Migrer vers les versions Sylius plus récentes

  • Cette approche stimule la maintenabilité, l'intégration des développeurs et accélère les cycles de développement initiaux.

Les principaux plats à retenir:

  • SyliusResourceBundle élimine le chaudron pour crud.

  • SyliusgridBundle fournit des listes d'administration de qualité de production avec une configuration minimale.

  • L'intégration de Symfony est de première classe, permettant un DX lisse.

  • Les contributions et les pratiques communautaires sont essentielles pour l'échelle de Sylius.

  • Utilisez des attributs YAML ou PHP en fonction de l'échelle de votre projet et des conventions d'équipe.

Al

Au cours de l'atelier avancé de Sylius, les développeurs ont plongé profondément dans deux aspects critiques de la personnalisation du commerce électronique au niveau de l'entreprise: Adapter la logique métier via l'entité, le formulaire et le modèleRemplacez et Bâtiment des plugins modulaires et réutilisables qui restent maintenables et compatibles entre les versions Sylius.

🧩 Le défi

Les implémentations modernes du commerce électronique nécessitent souvent une logique sur mesure (par exemple, les configurateurs de produits, les données spécifiques aux fournisseurs, les promotions en couches). La configuration par défaut de Sylius est flexible, mais pas toujours une clé en main pour ces besoins avancés.

Les objectifs clés du développeur comprennent:

  • Extension des entités sans casser des mappages de succession ou de doctrine.

  • Injection de nouveaux champs sous forme de symfony.

  • Modèles primordiaux d'une manière à impterner à l'avenir.

  • Développer des plugins réutilisables avec des environnements de test et une compatibilité des versions.

🛠️ Implémentation technique

Extension des entités et des formulaires

Exemple: ajout d'une relation de «marque» avec le «produit»

// src / entité / produit.php Le produit de classe étend Baseproduct { #[Orm \ ManyToOne (ciblentity: Brand :: Class)]] privé? Brand $ Brand = null; Fonction publique getBrand () :? marque {return $ this-> marque; } Fonction publique setBrand (? Brand $ Brand): void {$ this-> marque = $ marque; } }

Injecter le champ dans le formulaire d'administration à l'aide d'une extension de type de formulaire:

// SRC / Form / Extension / ProductTypeExtension.php Class ProductTypeExtension étend AbstractTypeExtension { Fonction publique Buildform (FormBuilderInterface $ Builder, Array $ Options): void { $ builder-> Add ('Brand', EntityType :: Class, [ 'Class' => Brand :: Class, 'choix_label' => 'name', 'requis' => false, ])); } Fonction statique publique GetExtendTypes (): itérable { return [ProductType :: class]; } }

Les remplacements du modèle avec des crochets de brindilles

Au lieu de copier des modèles entiers, vous pouvez injecter une logique personnalisée en utilisant des crochets Twig, introduits dans Sylius 1.11+.

{ % hook 'sylius.admin.product.form.tab'%} { {render (contrôleur ('app \\ contrôleur \\ brandController :: index'))} } { % endhook% }

Vous pouvez inspecter les noms de crochets et l'utilisation via le profil Symfony. Chaque crochet accepte:

  • Une priorité (pour commande)

  • Paramètres (passés au modèle)

  • Zones de crochet pré / post facultatif

Bâtiment des plugins robustes

Squelette de plugin

Les plugins Sylius suivent une structure de bundle Symfony:

src / Myplugin / Contrôleur/ Entité/ Dépôt/ DépendanceInjection / Myplugin.php

Ils enregistrent la configuration, les itinéraires et les services via des manifestes dédiés. Les cas d'utilisation courants comprennent:

  • Intégrations de paiement (Stripe, Mollie, Paypal)

  • Caractéristiques SEO (sitemaps, données structurées)

  • Fonctionnalité d'importation / exportation

  • Promotions personnalisées, attributs ou logiques de paiement

Application de test partagée (nouvelle approche)

Historiquement, chaque plugin a dû expédier avec une application complète de test Sylius - créant des cauchemars de maintenance sur plusieurs versions.

Maintenant, la communauté fournit un package d'applications de test:

compositeur exige --Dev Sylius / Plugin-Test-Application

Cela permet des tests de matrice CI par version avec un correctif de configuration automatique basé sur les versions Sylius / Symfony.

Sylius: Version: ["1.11", "1.12", "1.13", "1.14", "2.0"] Symfony: ["5.4", "6.4"]

Plus de piratage kernel.php - cela rend le plugin de développement plus rapide et beaucoup plus maintenable.

📈 Résultat et avantages

  • Extensibilité **: Les besoins spécifiques aux entreprises sont encapsulés proprement avec un couplage zéro au noyau de Sylius.

  • Testabilité **: Les plugins s'exécutent isolés avec des applications CI complètes et de test.

  • Compatibilité **: prend en charge facilement plusieurs versions Sylius / Symfony.

  • Expection du développeur (DX) **: Des outils comme les crochets brindilles et Sylius: Make: Resource accélèrent considérablement l'implémentation.

✅ Takeways clés pour les développeurs

✅ Utilisez l'héritage de la doctrine et «FormtypeExtension» pour étendre les entités et les formulaires proprement.
✅ Levier Crochets à brindilles pour injecter la logique de l'interface utilisateur sans remplacer les modèles complets.
✅ Structurez vos plugins comme les paquets Symfony et suivez les meilleures pratiques (référentiels non finaux, services isolés).
✅ Utilisez le nouvel outil d'application de test pour rendre vos plugins compatibles avec plusieurs versions de Sylius et Symfony.
✅ Extraire la logique réutilisable dans les plugins (paiement, import / export, elasticsearch, WishLists…) pour évoluer entre les projets.

✅ Pourquoi cela compte

Cet atelier n'était pas seulement théorique - il a été construit pour l'action. Si vous construisez des solutions de commerce électronique évolutives, personnalisables et adaptées aux développeurs, la maîtrise de Sylius est une évidence. Et les conseils de Gracjan ont rendu ce voyage 10x plus rapidement. ⚡

Syliuscon 2025

Syliuscon 2024 a été un moment charnière pour la communauté de Sylius, et l'excitation se construit déjà pour [SyliusCon 2025] (https://sylius.com/conference-2025), promettant des informations encore plus profondes, des vitrines techniques et une innovation conduite par la communauté dans le paysage électronique évolutif.

Ressources

Composants de Sylius

  • RessourceBundle: https://github.com/sylius/syliusresourcebundle

  • Gridbundle: https://github.com/sylius/syliusgridbundle

  • Crows Twig: https://afup.org/talks/4929-creer-des-interfaces-d-admiminging-papider-avec-symfony-UX-ET-SYLIUS

  • SyliusRecipes: https://github.com/sylius/syliusrecipes

  • Syliusstandard: https://github.com/sylius/sylius-standard

  • Syliusdemo: https://github.com/sylius/syliusdemo

Plugins

  • Plugin Stripe: https://github.com/flux-se/syliuspayumstripeplugin

  • SyLiusELasticSearchPlugin: https://github.com/bitbagcommerce/SyLiusELasticSearchPlugin

  • Plugin SEO

  • Importer l'exportation (ami de Sylius) https://github.com/friendsofsylius/SyliusImPortExportPlugin

  • Whishlist

  • Plugin RGPD (Synolia)

  • Carte-cadeau

  • factures

💡 Bonus pour les créateurs et les constructeurs

Vous voulez automatiser vos propres processus comme la création de vignettes, la publication vidéo ou la gestion du flux de travail?

👉 J'offre des séances de coaching gratuites de 30 minutes pour aider les créateurs comme vous déplacer plus rapidement. Simplifions votre pile, ensemble.

matyo91
matyo91
Free

Consulting Tech & Automation – Call Découverte Gratuit

Open
Follow matyo91 to comment
matyo91

matyo91

Je t'aide à automatiser tes process
10
Visit this Bonzai
Follow matyo91 to get the latest updates.

🎮 Créer un mini-jeu Discord avec VITE : un retour d'expérience

2 days ago
6

🎶 Open Mic du Groover Club - Mai 🧡

4 days ago
6

▶️ 2025-05-26 DjMatyo Soundcloud set with MC

6 days ago
11

🚀 Du développement à la production : déployer une API Symfony avec Upsun

1 week ago
13

🚀 Sylius Days 2025 : l'innovation en matière de commerce électronique

1 week ago
9

🇪🇺 DJ Matyo Live special Eurovision 2025 🌟

1 week ago
11

Générez automatiquement des miniatures YouTube personnalisées de style Ghibli avec PHP et l'IA

2 weeks ago
16

Recherche, Achat et Organisation de Tracks pour DJ Sets

2 weeks ago
26

Automating Gmail and Google Calendar with PHP Agents ?🧠⚡

3 weeks ago
19

Supercharge Your Job Search: Automate with MCP, Astra, Langflow and Arize

4 weeks ago
22

DJ Matyo Live

1 month ago
28

Build a Game for the largest game dev competition in the world

1 month ago
24

Demande à Codex

1 month ago
34

DJ Matyo Live repost track

1 month ago
27

Darkwood v1.0.1 release

1 month ago
36

Transforme ta voix en article de blog avec GPT et Meteor

1 month ago
38

Darkwood 1.0.0 is Here

1 month ago
34

Coder comme un DJ, mixer comme un dev

2 months ago
49

Créer un interpréteur Lambda en PHP

2 months ago
53

Youtube timestamp looker

2 months ago
46
© 2025 Bonzai
Privacy
Legal notice
Terms of Use
​