SF5PACK | Web Development with Symfony 5

  • This four-day course dedicated to Symfony is the perfect training to master all the fundamental concepts and the most advanced tools of Symfony 5. At the end of this workshop, we guarantee you will be fully autonomous on the Symfony 5 framework and more!
  • Prerequisites

    Mastering PHP essentials
  • Goals

    This intensive four-day training combines both the « SF5START / Getting Started with Symfony 5 » and « SF5MASTER / Mastering Symfony 5 » courses and covers all the fundamental topics of Symfony 5. You'll start with the basics such as installing Symfony, navigating the directory structure, and generating your very first dynamic web pages with Twig. Then, you will dive more in-depth into more advanced topics and tools. Like forms and data validation, authentication and authorizations, dependency injection, automated testing, and HTTP caching. This training is delivered by our Symfony expert and contributor instructors, who enjoy sharing their experience, best practices as well as tips and tricks to help you be more efficient and autonomous with Symfony 5.

Full program

Introduction

  • Overview of the Symfony project, including license, releases, roadmap, guidelines with Symfony framework and useful components as example of doable things.
  • Work environment and Symfony command line tool
  • Installation of a Symfony project

First steps with Symfony

  • How to handle a Request - Response flow
  • Create your first web page
  • Fine-tune your application routes with parameters and requirements
  • Best practises when using controllers and their helpers

Introduction to functional tests

  • Explanations about automated tests and functional tests
  • Get ready with PHPUnit to run automated tests
  • Write your first test to check a status code over a web page
  • Use a data provider to provide URLs to be checked

Templating with Twig


  • Introduction to Twig
  • Learn Twig’s basic syntax
  • Use the Dot syntax helper in your templates
  • Use Twig to loop over data from a controller and test some conditions to design your web page
  • Use layout techniques with inheritance and template inclusions to reduce your template
  • Best solutions to get help with the Symfony console and the web profiler
  • Create dynamic URLs in your templates to access another web page or link an asset

Web assets with Webpack Encore


  • Short introduction to Webpack Encore and Yarn
  • Installation and configuration of the required bundle
  • Optimize your assets with Webpack Encore

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 or a Doctrine fixture for automated tests purpose and 
  • Retrieve data from the database by using built-in or custom queries

Forms

  • Introduction to Symfony forms
  • Create your own form with custom types
  • Handle submitted data
  • Use Symfony built-in constraints to get validated data

Services

  • Introduction to dependency injection and Symfony services
  • Use the best way to get the list of available services to deal with
  • Use the autowiring to inject dependencies on a constructor, a setter or a property
  • Check custom configuration of your services
  • Services and environment variables

Console

  • About console commands, and how to create interactive commands, batch commands…
  • Write your own commands
  • Use helpers from SymfonyStyle to get life easier
  • Declare and handle new options and arguments in your command

Security


  • Introduction to Authentication and Authorization in a Symfony project
  • Create your own authenticator with Guard
  • Check the users’ roles to let them access a given resource
  • Create custom voters to handle rare situations requiring a PHP check

Events


  • Introduction to events and how to dispatch them in a Symfony project
  • Create subscribers to declare listeners
  • Important built-in events
  • Try an alternative configuration to declare listeners without subscribers