SF3C4 | Web Development with Symfony 3

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

    Mastering PHP essentials
  • Goals

    This intensive four day training combines both the « SF3C1 / Getting Started with Symfony 3 » and « SF3C2 / Mastering Symfony 3 » courses and covers all the most important topics of Symfony 3. 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 3.

Full program

Object Oriented Programming (on demand)

  • Classes and objects
  • Properties and methods
  • Constructor and destructor methods
  • Class inheritance
  • Attributes and methods scopes (visibility)
  • Error handling with exceptions
  • Namespaces

Introducing the Symfony famework

  • Introducing the Symfony framework and its ecosystem
  • Installing the Symfony « Standard Edition Distribution »
  • Discovering the Symfony project architecture (application, bundles, libraries, bundles etc.)
  • Understanding the HTTP request processing workflow
  • Understanding the concept of environment (development, production and testing)
  • Introducing the coding and files naming conventions
  • Discovering the concept of a « Bundle »

Debugging the Code

  • Getting help from the « Web Debug Toolbar »
  • Introspecting the recorded logs
  • Profiling HTTP requests thanks to the « Web Profiler » application
  • Spotting problems thanks to explicit errors and exceptions stack traces
  • Using the Debug and VarDumper components features

Configuring the application

  • Comparing the supported built-in configuration format: XML, YAML and PHP
  • Configuring the application thanks to global parameters
  • Configuration application’s routes and URLs with annotations
  • Overriding the configuration defined by a built-in or third-party « bundle »

Generating Contents for the End User

  • Introducing the Twig templates engine
  • Comparing Twig and raw PHP templating strategies
  • Accessing global variables from Twig templates (request, session, user)
  • Using tags, filters and function to generate and format contents in a Twig template
  • Making templates truly extensible thanks to the template inheritance feature
  • Splitting templates into smaller templates chunks to avoid code duplications
  • Rendering a Symfony controller from within a Twig template
  • Generating URLs based on the application’s routes configuration
  • Rendering Symfony forms with custom Twig view helpers

Developping Controller and Analyzing the Request

  • Designing a controller class with its action methods
  • Mapping URL patterns to Symfony controllers thanks to annotations
  • Generating raw responses and Twig templates based responses
  • Accessing client’s information from the Request object
  • Reading and writing session data
  • Reading and writing cookies data
  • Triggering a 404 error page when the resource is not found
  • Triggering an internal redirect to another controller to avoid code duplications
  • Redirecting the user to another page

Interacting with the End User thanks to Forms

  • Discovering the « Form » component
  • Designing and processing simple web forms
  • Adding validation constraints on submitted form fields’ data
  • Prototyping the form rendering thanks to Twig view helpers
  • Gathering the form submitted data and processing them
  • Sending the form validated and filtered data by e-mail to some recipient

Internationalizing and Localizing the User Interface

  • Discovering the « Translation » component
  • Changing the default user’s locale
  • Defining custom abstract translation keys in Twig templates
  • Generating XLIFF translation catalogues skeletons
  • Translating abstract translation keys in XLIFF catalogues
  • Dealing with dynamic translations including pluralized sentences

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
  • Duration

    4 day(s)
  • Level

    Beginner
  • Available languages

    French, English, German, Spanish
  • Available countries

    Worldwide, France, Germany, Spain, United Kingdom, United States

You are not available at this periods? We organize tailored training courses: contact us for more informations!