Course intended for:

The training has been developed for programmers, who would like to start working with the Symphony2 framework. It contains a complete set of information, starting from the basics to moderately advanced topics, which will be sufficient to develop a real Web application.

Course objective:

The training is aimed at presenting the practical applications of Symphony2 in Web application development. The trainers will discuss the essential issues associated with framework, supported by practical exercises. Step by step, the participants will build an exemplary application. In particular, the training participants will:

  • Get familiar with the patterns and best practices used during work with Symphony2,

  • Find out how to configure the application to suit their needs

  • Learn to use the Twig template system,

  • Get familiar with the aspects of validation of data entered by the user,

  • Find out how to read and save data entities and ensure transactionability of database operations using the Doctrine library,

  • Learn to develop their own services and work with an event-based code.


The participants are expected to have the PHP language programming skills, as well as basic knowledge in object-oriented programming. Basic knowledge of relational databases will be an advantage.

Course parameters:

3*8 hours (3*7 net hours) of lectures and workshops (with a visible emphasis on workshops)

Course curriculum

  1. Introduction

    1. General introduction to framework

      1. The console tool
    2. Symphony2 Architecture

      1. MVC, DI, DIC, IoC

      2. Handling of HTTP requests by the framework

    3. The project architecture

      1. Structure and division into bundles

      2. External libraries

      3. Public catalog

    4. Encoding conventions

      1. PSR Standard
  2. Project commencement

    1. Installation of Symphony2 in the standard version using the Composer tool

    2. Configuration of the application

      1. Configuration formats

      2. Application environments

      3. Routing

    3. Web debug toolbar

    4. Own bundle generation

  3. Generating of responses for the client

    1. Development of controllers

    2. Session and cookie handling

    3. Controlling of responses

      1. Forwarding of responses

      2. Enforcing different response HTTP codes

    4. Generating of view templates overriding the controller

  4. View templates using Twig

    1. Introduction to Twig template engine

    2. Layouts and inheriting of templates

    3. Development of helpers:

      1. Filters

      2. Functions

      3. Macros

    4. Supported template formats

  5. Translations (i18n)

  6. Forms and validation

    1. Introduction to Form Framework

    2. Development and handling of simple forms

    3. Data validation basics

    4. Establishing of own validators

    5. Rendering of forms using Twig templates

  7. Database management using Doctrine

    1. Configuration of connection with the database

    2. Repository and entity class development

    3. Development and performance of custom queries

    4. Console commands for handling of the database structure

    5. Event management using Lifecycle Callbacks

  8. Security

    1. Introduction to the Firewall mechanism

    2. User authentication

    3. User authorization

    4. Introduction to FOSUserBundle (3rd party bundle)

  9. REST Architecture

    1. Introduction to REST architecture

    2. Building of own API

      1. FOSRestBundle (3rd party bundle)

      2. NelmioApiDocBundle (3rd party bundle)

  10. Container of services

    1. Introduction to the topic of services

    2. Development of own services

    3. Service tagging use

    4. Event handling using the EventDispatcher component

      1. Listening to events

      2. Development of own events

      3. A review of bundles recommended by the community

Any questions?

* Required.

Phone +48 22 2035600
Fax +48 22 2035601