Skip to main content

Learn PHP Symfony 4 Hands-On Creating Real World Application

13h 22m 28s
English
Paid

Course description

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.

Read more about the course

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.

Requirements:
  • Basic understand of PHP and Object Oriented Programming
  • Mac, Windows or Ubuntu system
  • IDE or any other code editor
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

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

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 108 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online Learn PHP Symfony 4 Hands-On Creating Real World Application

0:00
/
#1: Introduction

All Course Lessons (108)

#Lesson TitleDurationAccess
1
Introduction Demo
05:50
2
About Symfony
02:35
3
Tools overview
02:11
4
Setting up Vagrant on Windows
06:10
5
Setting up Vagrant on Ubuntu
03:22
6
Setting up Vagrant on MacOS
04:09
7
Running Vagrant and creating a new Symfony 4 project
05:05
8
Symfony project structure overview
06:23
9
About Service Container
06:11
10
Autowiring, Autoconfiguring services
04:20
11
Public, private services, service aliases
05:15
12
Service tags
04:55
13
Manual service wiring, parameter binding
06:02
14
About controllers
12:34
15
About routing
08:54
16
Introduction to views (Twig)
10:40
17
Twig filters & custom Twig extensions
07:53
18
Custom error pages using Twig
06:00
19
Global variables in Twig
05:16
20
Handling assets (JavaScript, CSS) using Symfony Encore (and Webpack)
08:15
21
Installing Bootstrap 4 and compiling assets using Encore (Webpack)
08:36
22
Doctrine introduction
11:52
23
Creating first Entity
07:34
24
Creating a database migration
07:58
25
Basics of doctrine repository
10:32
26
Creating fixtures (database seeding)
06:25
27
Creating a form and handling form submission
10:46
28
Repository find methods and Twig include
10:43
29
Repository findBy, form validation, handling Entity changes
09:10
30
Deleting an Entity and flash messages
05:47
31
Doctrine internals (Entity, EntityManager, Unit of Work, Identity Map)
06:03
32
Security concepts
04:43
33
Security component config and HTTP Basic login
09:47
34
Creating User entity
08:51
35
User Entity fixtures
09:44
36
Login form part 1
09:42
37
Login form part 2
10:54
38
Adding validation to User entity
06:28
39
User registration form
08:20
40
User registration controller
11:49
41
Assigning user to MicroPost (ManyToOne & OneToMany)
13:25
42
Fixtures for relations (using references in fixtures)
04:39
43
Verifying user permissions in Twig (is_granted)
11:24
44
Adding randomness to fixtures
05:20
45
Security Voters introduction
03:19
46
Restricting access to edit or delete a micro post using SecurityVoter
11:11
47
Securing controller actions and templates using Security Voter
11:48
48
Adding an Admin User with all permissions
12:07
49
Security role hierarchy
02:28
50
Restricting adding new posts to registered users (many ways of doing that)
06:07
51
Lazy loading, proxy classes, repository find* methods criteria
09:45
52
Doctrine Lifecycle Callbacks
04:25
53
ManyToMany self-referencing relation (following/followers)
09:03
54
Fetching collections lazily in templates
07:31
55
Follow/Unfollow functionality (controller, adding Entities to Collections)
16:59
56
Follow/Unfollow functionality (security, verifying uniqueness)
05:41
57
Doctrine QueryBuilder - creating queries in OOP manner
11:54
58
ArrayCollection vs PersistentCollection vs Collection
09:44
59
Creating custom query to fetch users with more than 5 posts
12:44
60
More on Doctrine Collections (from the database perspective)
02:48
61
Section introduction
00:54
62
ManyToMany relationship for liked posts
07:31
63
Likes controller
09:33
64
Implementing like functionality through XHR requests (including JavaScript)
18:55
65
Notifications introduction
00:52
66
Doctrine Table Inheritance - base Notification Entity
10:11
67
NotificationRepository - fetching notifications unseen by user
06:41
68
Unseen notification badge (Twig + JavaScript)
09:41
69
Doctrine EventSubscriber - saving a notification as a reaction to other events
17:45
70
Unseen notification list
11:05
71
Marking notifications as being read (Doctrine Query Builder UPDATE queries)
10:12
72
Introduction to EventDispatcher
03:09
73
Dispatching an event when user registers
05:31
74
EventSubscriber - listening to user register event
04:14
75
Sending e-mail after user registers using Swift Mailer
09:45
76
E-mail spooling
05:08
77
Creating a Mailer class to handle e-mail sending (and generation using Twig)
05:16
78
Account confirmation (using secure token, confirmation link on e-mail)
15:03
79
Installing and configuring translation component
04:36
80
Using trans Twig filter to translate strings and validation messages translation
07:15
81
Translation strings with variables (translating confirmation e-mail with links)
10:18
82
Translation pluralization (different translation depending on variable)
05:15
83
Introduction to sessions
03:19
84
Storing user sessions in database
10:01
85
LocaleSubscriber - keeping user locale (language) in session
09:55
86
UserPreferences Entity & OneToOne relation with User Entity
09:13
87
Creating new UserPreferences after user registration (responding to event)
06:33
88
UserLocaleSubscriber - loading user language from DB and keeping in session
06:18
89
Introduction to unit testing (using PHPUnit)
01:54
90
Writing first unit test
08:08
91
Creating PHPUnit Mocks
06:16
92
A more complicated case with testing
09:56
93
Creating a GitHub account and adding an SSH key
05:43
94
Creating a DigitalOcean droplet
01:43
95
First login to virtual server and changing the root password
01:34
96
Creating and adding an SSH key to DigitalOcean (and managing SSH keys)
04:44
97
Installing Apache2 on virtual server
04:43
98
Installing PHP 7.2 on virtual server
02:19
99
Installing MySQL on virtual server and creating a database
02:57
100
Configuring Apache Virtual Host and using fake SMTP testing server
08:16
101
Moving application code to production server using Git & dependencies
06:08
102
Running migrations on server and folder permissions
07:34
103
Introduction to Continuous Integration & Continuous Deployment
03:02
104
Setting up CircleCI (automation server)
10:18
105
Running our first automation job (running tests)
03:58
106
Adding deployment SSH key to CricleCI
01:13
107
Deployment job and deployment scripts
12:28
108
Running the deployment job
05:19

Unlock unlimited learning

Get instant access to all 107 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

PHP Symfony 4 API Platform + React.js Full Stack Masterclass

PHP Symfony 4 API Platform + React.js Full Stack Masterclass

Sources: udemy
Have you ever wanted to advance your PHP skills to the next level? Maybe you have some prior PHP experience but you never had a change to work with a framework?
19 hours 24 minutes 17 seconds
API Platform: Serious RESTful APIs

API Platform: Serious RESTful APIs

Sources: symfonycasts
API Platform is crushing the scene these days. And it's easy to see why! Built on top of Symfony, API Platform enables you to build a rich, JSON-LD-powered, hypermedia API... pr...
2 hours 54 minutes 23 seconds
SymfonyCon 2018 Lisbon Conference Videos

SymfonyCon 2018 Lisbon Conference Videos

Sources: symfonycasts
SymfonyCon 2018 Lisbon was a huge success! Over 900 attendees from around the world came together to learn, meet and share their experiences around Symfony. And over 25 speakers...
16 hours 27 minutes 28 seconds
Learn Symfony 3

Learn Symfony 3

Sources: knpuniversity
Ready to get serious with Symfony? You've come to the right place! Get your first application off on the right foot by coding along with a real application, usi
5 hours 40 minutes 26 seconds
Messenger! Queue work for Later

Messenger! Queue work for Later

Sources: symfonycasts
Symfony's Messenger component gives you a beautiful system for designing your code around "message" objects and decoupled "handlers" that do the work! ... wait... that's not rig...
5 hours 5 minutes 31 seconds