SF3C2 | Mastering Symfony 3

  • This training helps you master some of the most advanced tools and key concepts of the Symfony framework. Thanks to our expert instructors, learn how to efficiently use the service container and register your own services. You'll also discover how to setup and run a unit and functional tests suite with PHPUnit to improve the quality and stability of your code. Finally, you'll learn how to build, process and validate dynamic forms, securing some areas of your application as well as dealing with a relational database and improving application performance. This training workshop is available online. Contact us and we'll tell you how.
  • Prerequisites

    Mastering Symfony 3 Basics
  • Goals

    In two days only, you'll learn how to master some of the most advanced and key topics of the Symfony 3 framework. This training focuses on mastering the framework configuration thanks to the dependency injection service container and bundles' specific configuration. You'll also learn how to design and validate forms as well as implementing your custom validation rulesets. This workshop also dives into some Doctrine persistence best practices, authentication and authorization mechanisms, unit and functional testing as well as HTTP caching to speed your application.

Full program

Dependency Injection and Service Container

  • Understanding the dependency injection principle
  • Getting started with the Symfony service container
  • Listing all built-in Symfony services thanks to the command line tools
  • Registering new custom business services in the dependency injection container
  • Accessing a registered service from the service container
  • Creating and accessing global configuration parameters from the container

Contracting a Quality Insurance with Automated Tests

  • Discovering the PHPUnit tests automation framework
  • Understanding the goals of automating tests (unit and functional tests)
  • Configuring an automated tests suite
  • Designing and executing a unit tests suite
  • Designing and executing a functional tests suite
  • Generating code coverage reports

Interacting with the End User and Forms

  • Designing and processing web forms
  • Automating form rendering with Twig view helpers
  • Customizing form rendering with built-in and custom Twig form themes
  • Configuring form field types as services
  • Applying built-in validation constraint rules on submitted data
  • Applying custom validation constraint rules on submitted data
  • Contextualizing the data validation thanks to validation groups

Restricting Access to Secured Areas of the Application

  • Getting started with authentication and authorization principles
  • Securing some application’s pages thanks to a form based authentication strategy
  • Implementing the Security Guard sub component to handle authentication
  • Setting up an access control policy based on user’s roles
  • Testing user’s permissions from a controller and a Twig template
  • Registering custom authorization rules thanks to the security « voters »

Improving Application Performances with HTTP Caching and ESI

  • Getting started with the HTTP caching workflows
  • Discovering the different kind of cache systems
  • Comparing the expiration and validation cache strategies
  • Applying expiration and validation cache constraints to generated web pages
  • Caching page fragments thanks to the ESI technology (« Edge Side Includes »)
  • Installing and configuring the Symfony’s built-in reverse-proxy cache

Querying a Relational Database System with Doctrine

  • Discovering the basics of the Doctrine ORM
  • Understanding the concepts of « entities » and « repositories »
  • Automating PHP classes and SQL queries code generation with Doctrine
  • Persisting data to the database thanks to the Doctrine ORM entity manager
  • Fetching data back from the database thanks to Doctrine
  • Building and executing custom SQL queries thanks to the Doctrine Query Builder object