SFSYLIUS | Create an e-commerce shop with Symfony and Sylius
- This four-day course is dedicated to Symfony and Sylius. It is the perfect training to master all the fundamental concepts and the most advanced tools. At the end of this workshop, you will work autonomously on the eCommerce framework based on Symfony!
-
Prerequisites
Mastering PHP essentials -
Goals
This intensive four-day training combines both the basics of Symfony and Sylius. It covers all the fundamental topics of these Frameworks to allow you to create your eCommerce store. First, you will start with the basics like navigation, directory structure, and building your very first dynamic web pages with Twig. Then you will dive deeper into more advanced topics and tools from Symfony and Sylius. Like, authentication and permissions, dependency injection, automated testing, and catalog building, among others. This training is delivered by our expert instructors and Symfony/Sylius contributors, who like to share their experience, best practices, as well as tips and tricks to help you be more efficient and autonomous.
Full program
Discovery of Symfony
- How to handle the HTTP request - response workflow
- Routing
- Best practices for your controllers and their capabilities
- Bundles and Maker Bundle
Twig
- Introduction to Twig
- Pass a context to your templates from your controllers
- Use layout techniques with inheritance and template inclusions to reduce the size of your templates
- Direct templates overriding
- Good solutions to find help for your templates through the Symfony console or the web profiler
Exercises
- Composer create-project
- Creation of a controller + custom route and a view (using also path())
Database
- Introduction to Doctrine
- Establish and manage relationships between 2 entities
- Store records in the database using a controller.
- Retrieve records from the database using standard or custom queries (repositories)
- Talk about different mapping files (Sylius doesn't use annotations)
- Schema Update vs Migration
- Introduction to fixtures
DIC
- Introduction to Dependency Injection and Symfony Services
- Use the best method to determine available services
- Use "autowiring" to inject dependencies into a constructor, setter, or attribute
- Check the configuration of your services
- Understand the boundary between service parameters and environment variables
- decoration, tag, compiler pass
- Exercise : TBD
- Entity, repository, repository as a service, request from controller
Introduction to Doctrine
- Introduction to the Doctrine ORM and configuration of your project to access the database
- Create your own entities and their mapping with the Symfony maker
- Create and apply migrations to manage the state of your database at anytime
- Handle relations between 2 entities
- Store data in the database by using a controller
- Retrieve data from the database by using built-in or custom queries
Introduction to Sylius
- Sylius architecture overview
- Technical foundations
- Show some code how Sylius is architectured (reminder of the first day : services, entities, controllers)
- Models
- Exercice : Installer Sylius
- Demo Sylius
- schema:update
- fixtures:load
Produit
- Presentation of a Sylius product
- Creation of the first Sylius product
- Add a feature to a Sylius product (color)
- Create and apply migrations to manage the state of your database
- Taxonomy
- Exercice : Same as below
Catalog
- Product lists
- Listing Controllers
- Paginating
- Filtering
- Exercise: Filter the list of products, by the added attribute
Tests
- Introduction to functional testing (must be related with the Sylius part, phpspec, Behat)
- Installation and presentation of the "PHPUnit" tool to run your automated tests
- Write your first test to check a status code for a given web page
- Create a "data provider" to provide URLs to be parsed sequentially in a test
- How Sylius do ?
- Theory of testing
- TDD and BDD overview
- PHP SPEC ?
Variant
- Variants and options
- Associations and reviews
Cart
- Order structure and workflow
- State machine and its usage within Sylius
- Checkout process
- Payment
- Shipping
Security
- Introduction to authentication and authorization in a Symfony project
- Form Login
- Customer Entity
- User Provider
- Check the roles of your users to give them access to certain application resources
- Create custom Voter to handle rare situations that require special authentication in PHP
- Admin & customers
Store configuration
- Currencies
- Locales
- Zones
- Payment & Shipment methods
Promotions & Taxes
- Promotion structure
- Coupons
- Taxes structure
- Set up 20% VAT on certain products
- Edit product view to show a custom ribbon if there is a promotion/coupon
- Exercise : TBD
Extending Sylius
- Working with resources
- Controller, route, factory
- Introduction to Symfony Forms
- Create your forms with custom configurations
- Extract and manage data from your forms
- Configure native constraints to validate data coming from the user
- Creation of manageable resource (color card)
- Event Dispatcher
- Sylius template events
- Emails management
- API
- Continue with the admin: Channels
Appreciation of the training
Global average :
- Educational rating : N.C
- Content rating : N.C
- Pace rating : N.C
Evaluative methods
- A control of knowledge in the form of multiple choice questions is carried out during and at the end of the training. It allows to validate and take back the points not assimilated.
- A certificate of successful completion of a training action is sent to the learner.
- A copy of the attendance sheet is transmitted.
Terms of registration
- Registration can only be made using the registration form available on our website or via the training team e-mail.
- Registration will be completed only after receiving the signed aggreement and the full payment before the start of the training.
-
Duration
4 day(s)
-
Level
Beginner
-
Available languages
French, English -
Available countries
Worldwide, France, Germany, Spain, United Kingdom, United States
From €1,990.00
No session scheduled
No session is scheduled for this course. However we organize tailored training courses: contact us for more informations!