Learn PHP Symfony Hands-On Creating Real World Application
4.2 (950 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
5,332 students enrolled

Learn PHP Symfony Hands-On Creating Real World Application

Learn PHP Symfony Framework, write a full real world application and deploy it on DigitalOcean using CI/CD.
4.2 (950 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
5,332 students enrolled
Created by Piotr Jura
Last updated 7/2019
English
English [Auto], Indonesian [Auto], 4 more
  • Italian [Auto]
  • Polish [Auto]
  • Romanian [Auto]
  • Thai [Auto]
Current price: $13.99 Original price: $19.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 13.5 hours on-demand video
  • 6 articles
  • 19 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • You will create a fully working, real world website in Symfony
  • You will have strong understanding of the framework
  • Learn and see how Continuous Deployment and Continuous Integration works
  • You will automate deployment using single commit to deploy the website to outside world
  • Deep understanding of how databases and Doctrine ORM works
  • Learn how to create forms, save, edit and validate data
  • Learn how to create and deal with complicated Database relations
  • Send e-mails and understand Symfony Event system
  • Secure the application and restrict access to certain parts of application to specific users
  • Create SQL queries in Doctrine, Doctrine Table Inheritance and Lifycycle callbacks
  • Learn how to translate your application into many different languages
  • Understand how sessions work
  • Test your application by writing Unit tests with PHPUnit
  • Provision a remote server by installing Apache, PHP, MySQL using SSH
Course content
Expand all 114 lectures 13:23:09
+ Introduction
4 lectures 10:36

What this course is about, what you will learn and how to make most out of this course

Preview 05:49

A short introduction to Symfony framework, what it is, what problems it solves

Preview 02:34

What tools will you need or will be useful to make most of this course

Preview 02:10

Full source code of the course available for download

Full source code
00:03
+ Work environment setup & overview
7 lectures 26:42
Setting up Vagrant on Windows
06:09
Setting up Vagrant on Ubuntu
03:21
Setting up Vagrant on MacOS
04:08
IMPORTANT! Vagrant problems and FAQ
00:59
Running Vagrant and creating a new Symfony 4 project
05:04
IDE/Editor and tools overview and recommendations
00:39
Symfony project structure overview
06:22
+ Service Container
5 lectures 26:38
Public, private services, service aliases
05:14
Service tags
04:54
Manual service wiring, parameter binding
06:01
+ Controllers, Routes, Views
8 lectures 01:08:00
About controllers
12:33
About routing
08:53
Introduction to views (Twig)
10:39
Custom error pages using Twig
05:59
Global variables in Twig
05:15
Handling assets (JavaScript, CSS) using Symfony Encore (and Webpack)
08:14
Installing Bootstrap 4 and compiling assets using Encore (Webpack)
08:35
+ Introduction to Databases (Doctrine2 ORM)
10 lectures 01:26:40
Doctrine introduction
11:51
Creating first Entity
07:33
Basics of doctrine repository
10:31
Creating a form and handling form submission
10:45
Repository find methods and Twig include
10:42
Repository findBy, form validation, handling Entity changes
09:09
Deleting an Entity and flash messages
05:46
Doctrine internals (Entity, EntityManager, Unit of Work, Identity Map)
06:02
+ Securing the application
19 lectures 02:41:47
Security concepts
04:42
Security component config and HTTP Basic login
09:46
Creating User entity
08:50
User Entity fixtures
09:43
Login form part 1
09:41
Login form part 2
10:53
Adding validation to User entity
06:27
User registration form
08:19
User registration controller
11:48
Assigning user to MicroPost (ManyToOne & OneToMany)
13:24
Verifying user permissions in Twig (is_granted)
11:23
Adding randomness to fixtures
05:19
Security Voters introduction
03:18
Restricting access to edit or delete a micro post using SecurityVoter
11:10
Securing controller actions and templates using Security Voter
11:47
Adding an Admin User with all permissions
12:06
Security role hierarchy
02:27
Restricting adding new posts to registered users (many ways of doing that)
06:06
+ Doctrine advanced (following functionality)
10 lectures 01:30:24
Lazy loading, proxy classes, repository find* methods criteria
09:44
Doctrine Lifecycle Callbacks
04:24
ManyToMany self-referencing relation (following/followers)
09:02
Fetching collections lazily in templates
07:30
Follow/Unfollow functionality (controller, adding Entities to Collections)
16:58
Follow/Unfollow functionality (security, verifying uniqueness)
05:40
Doctrine QueryBuilder - creating queries in OOP manner
11:53
ArrayCollection vs PersistentCollection vs Collection
09:43
Creating custom query to fetch users with more than 5 posts
12:43
More on Doctrine Collections (from the database perspective)
02:47
+ Doctrine advanced Part 2 (likes functionality & user notifications)
11 lectures 01:43:08
Section introduction
00:53
ManyToMany relationship for liked posts
07:29
Likes controller
09:32
Implementing like functionality through XHR requests (including JavaScript)
18:54
Notifications introduction
00:51
Doctrine Table Inheritance - base Notification Entity
10:10
NotificationRepository - fetching notifications unseen by user
06:40
Unseen notification badge (Twig + JavaScript)
09:40
Doctrine EventSubscriber - saving a notification as a reaction to other events
17:44
Unseen notification list
11:04
Marking notifications as being read (Doctrine Query Builder UPDATE queries)
10:11
+ Sending e-mails and Event Dispatcher
8 lectures 48:21
Introduction to EventDispatcher
03:08
Dispatching an event when user registers
05:30
EventSubscriber - listening to user register event
04:13
UPDATE: Missing code on next lecture
00:22
Sending e-mail after user registers using Swift Mailer
09:44
E-mail spooling
05:07
Creating a Mailer class to handle e-mail sending (and generation using Twig)
05:15
Account confirmation (using secure token, confirmation link on e-mail)
15:02
+ Translations and internationalization
4 lectures 27:19
Installing and configuring translation component
04:35
Using trans Twig filter to translate strings and validation messages translation
07:14
Translation strings with variables (translating confirmation e-mail with links)
10:16
Translation pluralization (different translation depending on variable)
05:14
Requirements
  • Basic understand of PHP and Object Oriented Programming
  • Mac, Windows or Ubuntu system
  • IDE or any other code editor
Description

Symfony is a powerful PHP framework that would let you create not only websites but great web applications, APIs or mobile backends.

It's latest version is the most powerful, yet simplest to use for developers. If you want to learn Symfony in-depth, this is the best place you could get.

With over 13+ hours of content, without unnecessary talking, you'll learn and discover all the concepts of everyday programmer working with Symfony framework. 

We'll go through each single task step by step, you will code along with me. I'd explain every detail of how things work, and how things should be done. 

At the end of this course you will not only complete a fully working, real world Twitter like application, you will also deploy it to the production server. But that's not it, we will also create an automation server, so a single Git commit will automatically release your application.

The recommended development environment is Vagrant and a ready Vagrant box Laravel Homestead, so you'll get up and running in no time. The course includes set up instructions for Ubuntu, MacOS and Windows. Of course you can use anything that works best for you, let it be XAMPP, MAMP, Docker, Vagrant or your own system, provided you have PHP 7+ and MySQL installed.

The course starts with introduction and setup lectures and and overview of how Symfony project structure looks like.

Then we'll move on and explain Service Container, as this is a crucial part of the framework. Don't worry if it's tough to understand and first, we will get back to it all the times, explaining how it works and seeing what you can do with it throughout the course.

Next section is centered around Controllers, Routes and Twig templating engine. You will learn how to create a backbone of your application and how to render HTML together with data using Twig. We will also see how we can install and manage assets, like CSS & JavaScript, by installing Bootstrap using yarn.

After that, will touch databases and the excellent Doctrine ORM. You will learn how you can create simple PHP objects as a representation of a table rows. You will learn about database migrations - an easy way of managing your database schema changes. This section will also show you how to quickly fetch, modify and delete data from the database.

Who this course is for:
  • PHP developers that do not know any framework
  • Developers with some knowledge of other PHP frameworks
  • Developers that need and want to pick-up Symfony fast with straight to the point course