Course Outline

Object Oriented Programming

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

Requirements

  • Knowledge of Object Oriented Programming concept
  • Knowledge of PHP
  • Basic knowledge of any MVC/MVP framework
 28 Hours

Number of participants


Price per participant

Testimonials (3)

Upcoming Courses

Related Categories