SF4C4 | Web Development with Symfony 4

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

    Mastering PHP essentials
  • Goals

    This intensive four day training combines both the « SF4C1 / Getting Started with Symfony 4 » and « SF4C2 / Mastering Symfony 4 » courses and covers all the most important topics of Symfony 4. 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'll dive more in depth in 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 4.

Full program

Discovering the Symfony 4 Project

  • General overview of the Symfony 4 project (source code, license, documentation, community, philosophy, ecosystem, etc.)
  • Understanding the release cycle of new Symfony versions
  • Bootstrapping a new Symfony 4 application project with Composer and Flex
  • Taming project files and directory structure
  • Installing third party modules (bundles, libraries) with Flex
  • Finding help and documentation resources on the Internet
  • Understanding the HTTP request / response processing workflow
  • Discovering the concept of Symfony environments (development, production and test)
  • Developing code according to Symfony coding and namming conventions
  • Taming the CLI tool and its numerous useful commands

Learning how to Debug Code

  • Installing the « Web Profiler » with Symfony Flex
  • Enabling errors and incidents logging
  • Displaying the « Web Debug Toolbar » on Web pages
  • Browsing the « Web Profiler » debugging panels
  • Analyzing exceptions stack traces and error messages
  • Introspecting a variable contents

Mastering the Configuration Layer

  • Register new routes definitions (YAML and annotations)
  • Constraining routes configuration (HTTP verb, domain name, placeholders, etc.)
  • Overloading third party bundles configuration
  • Declaring new global configuration parameters
  • Extracting sensitive and runtime platform specific global parameters to environment variables
  • Understanding the configuration overloading per environment

Responding to the Client's Request

  • Developing controller classes and actions methods
  • Transforming a request objet into a response object
  • Mapping URLs to controllers with annotations
  • Generating a raw response or from a Twig template
  • Accessing the request objet to read client's data
  • Reading and writing data from/to the user's session
  • Generating a 404 response type page
  • Redirecting the user to another page with HTTP redirects

Generating Dynamic Web Pages

  • Discovering the Twig tempate engine
  • Designing concise and explicit templates
  • Accessing Twig templates global variables
  • Mastering the Twig grammar (tags, filters, functions, tests, etc.)
  • Building more advanced Web pages with template inheritance
  • Refactoring duplicated code thanks to template inclusion
  • Performing an action and displaying its result from a view
  • Generating URL patterns based on registered routes
  • Rendering Symfony forms

Interacting with the User thanks to Forms

  • Designing and processing simple forms
  • Applying validation rules to validate submitted data
  • Prototyping the rendering of a form with Twig
  • Collecting and processing validated data from a form

Internationalizing and Localizing Contents

  • Installing the translation component
  • Changing the default application locale
  • Defining simple translation keys in Twig views
  • Generating translation files skeletons (XLIFF, YAML)
  • Translating keys
  • Handling translation keys including plural sentences

Perpetuating the Application with Automated Tests

  • Discovering the PHPUnit unit testing framework
  • Understanding the pros of automating tests
  • Configuring a unit tests suite
  • Creating and executing a unit tests suite
  • Creating and executing a functional tests suite
  • Generating code coverage report

Outsourcing the Business Logic into Services

  • Understanding the dependency injection principle
  • Introducing the Symfony service container
  • Listing all existing Symfony framework services
  • Registering new business services into the container
  • Configuring services with global parameters
  • Leveraging the services auto-registration mechanism
  • Adapting services configuration manually when needed

Securing Access to the Application Protected Pages

  • Introduction to authentication and authorization principles
  • Securing a Web site with a traditional login form authentication
  • Establishing a security policy based on users' permissions
  • Testing the rights of the current user from a controller or view

Improve performance with HTTP and ESI cache

  • Introduction to the HTTP cache
  • Discovering the different types of cache
  • Comparing cache policies: expiration versus validation
  • Applying page expiration and validation rules
  • Hiding dynamic page fragments with ESIs ("Edge Side Includes")
  • Installing and configure the Symfony native reverse proxy

Time program

Day 1

Appreciation of the training

Global average : 4.2/5

  1. Educational rating : 4.7/5
  2. Content rating : 4.3/5
  3. Pace rating : 3.6/5
The ratings are the synthesis of the cumulative assessments of our trainees from 01/01/2021 to 31/12/2021.
  • Duration

    4 day(s)
  • Level

    Beginner
  • Available languages

    French, English, German, Spanish
  • Available countries

    Worldwide, France, Germany, Spain, United Kingdom, United States
From €1,791.00
No session scheduled

No session is scheduled for this course. However we organize tailored training courses: contact us for more informations!