- Montreal 2023
This hands-on and intensive practical workshop will enable you to learn the fundamentals and best practices of developing solid Symfony Web applications by leveraging some of the new features of the PHP 8 language. Indeed, attendees will be guided in the making of a small web application from scratch using the Symfony 6 framework and the PHP 8 language.
The course will cover all the fundamentals of the Symfony framework from its installation, its routing system, its configuration through services and dependency injection, to the controller, model and view rendering layers. Attendees will be guided in the building of a small reactive business oriented Web application that enables to bring lots of Symfony’s best components into play: database interaction with Doctrine ORM, data validation, asynchronous job processing, email sending, serialization, etc. On top of discovering Symfony, attendees will also learn the best practices to design a solid domain model matching the business processes as well as writing a suite of unit and functional automated tests.
- Installing & running Symfony
- Installing third party components with Composer & Flex
- Bootstrapping pieces of code with Symfony MakerBundle
- Discovering the default directory & file structure
- Automating redundant tasks with Composer scripts and the Symfony Console
- Ensuring high quality coding standards with PHP CodeSniffer & PHPStan
- Leveraging PHP 8 attributes to configure the application
- Mapping elegant URLs to PHP controllers
- Rendering dynamic Web pages with Twig
- Designing a rich persistent domain model with Doctrine ORM
- Generating dynamic random data fixtures with Zenstruck Foundry
- Persisting data to a relational database with Doctrine entity manager
- Querying and paginating database records with Doctrine DBAL
- Encapsulating business logic into model entities, value objects and reusable services
- Designing decoupled and unit testable code following SOLID principles and design patterns
- Validating user’s data with Symfony Validator constraints
- Implementing a finite state machine on a domain object with the Symfony Workflow component
- Sending basic and template based emails with the Symfony Mailer component
- Performing asynchronous tasks with the Symfony Messenger component
- Rendering reactive Web pages with WebPack Encore and the Symfony UX toolbox
- Implementing a unit & functional tests suite with PHPUnit and the Symfony Client
- Debugging efficiently with the Symfony Web Debug Toolbar and Web Profiler tools
Bonus if time allows it:
- Generating a full featured administration interface with EasyAdminBundle
- Securing the administration area with authentication & authorization mechanisms
- 2 days
- 9:00 am to 5:00 pm
- 1 hour lunch break included at the hotel's restaurant
- 15 min coffee break every morning and afternoon
The whole workshop will be delivered in English by a French native speaking trainer.
The workshop is highly practical and mainly targeted to PHP backend developers who want to acquire the fundamentals and best practices of the Symfony framework. A good knowledge of the PHP language and object oriented programming is required to jump into this course.
This course is suitable for the following audience:
- PHP developers with no experience with Symfony so far
- PHP developers with some experience with other frameworks like Laravel, Drupal, etc.
- PHP developers with experience on previous major Symfony versions who want to update their knowledge
Each attendee is required to bring their own laptop equipped with the at least the following software configuration:
- PHP 8.1 with enabled extensions: PDO, openssl, mbstring, intl, iconv, xdebug, zip, xml, dom,
- PostgreSQL or MySQL server
- Docker (optional)
- The IDEA of their choice they are more comfortable with (PHPStorm highly recommended)
Please be advised that the trainer will make his best to accommodate everyone’s technical requirements at the beginning of the workshop but without any guarantee according to the number of participants. In order for everyone to take the most of this training, we strongly advised each attendee to check their software configuration before the first day of the workshop takes place.