Learn Symfony 3 framework by practical examples

Learn how to build professional web applications using Symfony, one of the most popular PHP framework
4.2 (92 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
444 students enrolled
88% off
Take This Course
  • Lectures 48
  • Length 4 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 9/2016 English

Course Description

What is this course about:

This course is designed for PHP developers that want to expand their knowledge by learning one of the leading PHP frameworks. Symfony is the most advanced and powerful PHP framework available on the market. By using it you can dramatically improve your coding efficiency and code quality.

Course will teach you how to build web applications using Symfony framework. I will try to limit theory as much as it's possible in favour of practical examples that you can use in day to day development.

Course content:

  • Course consists of videos, presentations, and real life examples that you can use later in your work.

Course benefits:

  • By the end of the course you’ll be able to install, configure and use most of the Symfony framework features.
  • I’ll be teaching most of the components of the framework by practical examples that you can use in real life.
  • You can find step by step tutorials how to use Dependency Injection, Console commands, Doctrine entities, Controllers and many more.
  • You will learn how to test your code (unit and functional).

Student requirements:

The ideal student for this course is an existing PHP developer that wants to improve his skills by learning how to use Symfony framework.

What are the requirements?

  • You should already be familiar with PHP development
  • You need to have environmnent ready to use, which includes mySql database, PHP >= 5.5, Apache web server
  • You need to preapre your favorite editor, I am using phpStorm

What am I going to get from this course?

  • Use the framework main features in your daily work
  • Build solid and testable web applications
  • Don't invent a wheel again, just use amazing bundles that will make your life easier!

Who is the target audience?

  • This course is meant for PHP developers who are willing to learn how to leverage Symfony framework features in web applications. This course is probably not for people that just started with PHP development.
  • If you are experienced web developer but just don't know Symfony yet, this course is for you!
  • You should rather not take this course if you're looking for theory, I am more focused on practical examples you can use in real life.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Introduction

I will explain all the prerequisites and tell you how to prepare your local environment to be able to follow the lectures and try examples and exercises.


Here you can get to know what this course is about. I will explain the main objective and what you can learn by completing this course.

Section 2: Introduction to Symfony
  • You will get to know how to install the Symfony framework on your local environment.
  • I will show where you can find framework documentation

You will learn how to use PHP built-in web server with Symfony


I wil show how to prepare and configure web server:

You will learn how to:

  • Configure Apache VHost
  • Configure hostname for our test application

I will show you the framework directory structure and briefly explain the meaning of most important files and directories.


I will explain the concept of application environments.

You'll get to know the HTTP request and response processing workflow.

I'll explain how you can use Symfony console

4 questions

Lets try to recall all the basic concepts mentioned in the lectures.

Section 3: Bundles
  • You will get overview of default bundle (AppBundle)
  • I'll explain it's structure and show how to use it.

I'll show how to create and connect your custom bundle.

  • I will tell you what is the difference between generated applicaition bundle and third party bundle
  • We will install and configure third party bundle from external source
  • We will use KnpMenuBundle to display main navigation for our application
Section 4: Lets code!

I will show you how to use Bootstrap as our main theme.

  • I will show you how to update the routing and how to reference the route by name
  • I will show how to use common layout for templates in diferrent bundles (template inheritance)
  • I will update navigration bar by adding new item
  • I will show you how to use template inheritance
  • I will explain why and how to use template blocks
  • You will learn how Twig works and where to look for documentation
  • I will explain the basics about the Twig syntax
  • You will learn how to pass data from controller to the view
  • You will use for loop to iterate and display the array in view file
Section 5: Databases and Doctrine
  • You will learn what is Doctrine and why we are using it.
  • You will get familiar with Doctrine architecture and basic conepts.
  • You will learn how to configure database connection
  • You will learn how to create and drop database using Symfony console

You will get familiar with Doctrine Entity class concept.


You will learn how to:

  • Generate an Entity
  • Use annotation to configure your entities
  • Update database schema using Symfony console

You will get familiar with Doctrine Repository class concept.


You will learn how to:

  • Use doctrine Repositories
  • Retrieve data from database
  • Pass variables in URL
  • Navigate between the pages

You will learn how to:

  • Update existing Entity structure
  • Generate getters and setters using Symfony console

You will learn how to:

  • Define one to many relation
  • Use annotations for relation definition

You will learn:

  • What is lazy loading
  • How Doctrine fetches the data by default
  • How to check what actually was taken from database using profiler

You will learn how to:

  • Profile your data using Symfony profiler
  • Use Query Builder to build custom queries
  • Use join in Doctrine queries
  • Define custom methods in Repository class
Section 6: Form basics

You will learn:

  • How to create Form using Form Builder
  • How to display form in a view
  • How to change form theme
  • How to customise form display

You will learn:

  • How to submit the form
  • How to check validation of submitted data
  • How to set the form element constraints
  • Now to display the validation errors

You will learn:

  • How to create Form based on a Doctrine Entity
  • How to use Symfony console to generate a form
  • Where to find generated form class

You will learn:

  • How to handle CRUD (Create, Read, Update, Delete) operations in Symfony controller
  • How to generate CRUD controller for Doctrine entity
  • How to change views location
  • How to use @Template annotation
  • How to prepare model for a Form

You will learn:

  • How to add custom validation to generated form
  • How to customise generated controller
  • How to customise generated views
  • How to debug problems with the data model
Section 7: Service Container

You will learn:

  • Where to find service configuration
  • How to configure service
  • How to use your custom class as a service
  • How to retrieve service from container
  • How to use service in controller
  • How to use flash messages

You will learn:

  • How to use configuration parameters for a service
  • How to define parameters in application configuration

You will learn:

  • How to depend on another service object
  • How to inject another services using configuration
Section 8: Console commands

You will learn:

  • How to create console command using Symfony console
  • How to find generated file in your bundle
  • What is the basic command structure

You will learn:

  • How to access Service Container in console command
  • How to use service obtained from container

You will learn:

  • How to display output of executed command
  • How to use progress bar component to display progress of your command
  • How to use input arguments

You will learn:

  • How to manually configure your command in Service container
  • How to inject another service to your command
Section 9: Testing your application

You will learn:

  • What is PHPUnit
  • Where to find all the necessary information about the PHPUnit
  • How to install PHPUnit using composer

You will learn:

  • How to configure your application for testing
  • How to run tests for your application

You will learn:

  • How to configure code coverage report for your application
  • How to generate coverage report
  • How to see the coverage report

You will learn:

  • How to unit test your classes
  • How to mock objects
  • How to make expectations on mock objects

You will learn:

  • How to write basic functional tests
  • How to make a request
  • How to test the response
  • How to click on a link
Section 10: Doctrine fixtures

You will learn:

  • What is the use of doctrine fixtures
  • How to install fixtures
  • How to configure fixtures

You will learn:

  • How to define fixtures
  • How to load fixtures to database
  • How to append fixtures

You will learn:

  • How to reference object from other fixture files
  • How to set reference to doctrine entity
  • How to define fixtures loading order
Section 11: Summary

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Wojciech Ciolko, Software Engineer, Consultant

I am Agile oriented software engineer, architect and project leader with a deep technical background in web technologies.

I am not a prisoner of the only right technology, I try to deliver the best quality combined with the scalable architecture based on most relevant technologies.
I am focused mainly on custom, high availability and usually quite complex B2B solutions.

After lots of years of learning in small and big companies I want to share my findings with you. I want to help people around the world to feel this exciting and challenging experience and be a part of growing software industry.

Ready to start learning?
Take This Course