Introduction to web development with Symfony2

Learn to develop a complete application from scratch using Symfony, the most complete PHP framework.
3.7 (41 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.
422 students enrolled
$30
Take This Course
  • Lectures 85
  • Contents Video: 3.5 hours
    Other: 2 mins
  • Skill Level Beginner Level
  • 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

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

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

About This Course

Published 2/2014 English

Course Description

UPDATE 2016-04: The course has been updated for Symfony 2.8 LTS

This course is an introduction to web development with Symfony, the most complete PHP framework.

It consists of videos where you can follow the creation of a complete web application from scratch and step by step: a blog, including an administration area.

It's 4 hours length, but if you want to practice while you learn, you will take more time, which I recommend.

The course is globally structured this way:

  • Setting up the development environment
  • Generating the core bundle for the public part (frontend)
  • Generating the model bundle for the business logic (interactions with the database)
  • Generating the administration bundle, to manage posts and authors (backend or backoffice)
  • Refactoring code to modularize and organize it better, using the flexibility of the service container
  • Make use of the URLs to select the language

During the course I will emphasize test driven development, using the industry standard: PHPUnit.

Also, you can find the resulting application in GitHub (it's in the latest lecture, you can check it out even if you are not enrolled in the course). It uses git tags so you can see how the code looks like at the end of each lecture.

If you are a PHP developer and you want to step up to the next level using a framework, or if you already know Symfony or another framework and you want to review and go in depth, this is your course. An introduction that will give you the tools to create an application easily, making use of good practices.

Once you have joined the course I will answer your questions about the contents.

What are the requirements?

  • Knowledge of PHP
  • Knowledge of object oriented programming
  • Knowledge of the MVC pattern
  • OS X (recommended) or Linux
  • Windows is not supported in the course, although I will give some tips

What am I going to get from this course?

  • In this course you will learn to use the most important features of the framework and to face the most common problems that appear in a big web project
  • You will be capable to develop a web application from scratch with Symfony2

What is the target audience?

  • Web developers
  • PHP developers wanting to step up to the next level

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.

Curriculum

Section 1: Course introduction
Symfony2 features that we will cover
Preview
01:15
IDE and PHP version
Preview
00:57
Course notes and updates
Article
Section 2: Setting up the development environment
Setting up the development environment
Article
Reviewing the official book
00:09
Section 3: Preparing the project
Creating the project
00:16
A quick look at the project configuration
Preview
02:16
Configuring Composer
Article
Removing the AppBundle sample bundle
00:24
Section 4: The first bundles
Generating the CoreBundle
Preview
01:24
Generating the ModelBundle
00:53
Section 5: Setting up the database through Doctrine 2
Creating the database
Article
Generating the Post and Author entities
10:56
Generating our first migration
05:27
Populating the database with fixtures
11:01
Section 6: The main page with the posts list
Generating the list controller
Preview
01:51
Writing our first test
01:24
Installing PHPUnit and running the suite test
00:54
Trying it out in the browser and having look at the debug toolbar
00:43
Customizing the main layout with Twig
00:43
Creating the layout and the i18n files for the CoreBundle
04:44
Creating the CSS for the CoreBundle and installing assets
06:23
Retouching the controller test
01:41
Iterating over Twig posts, using partials and the Twig extensions
08:52
Adding a sidebar for the latest posts
07:37
Installing Doctrine Extensions to add a slug to the post
03:46
Refactoring Timestampable to use Doctrine Extensions
01:09
Adding an updated field for posts
01:54
Section 7: The post page
Writing a test to load a post
Preview
03:41
Creating the controller action
02:09
Creating the template
02:57
Setting the final routes in the list
02:10
Section 8: The author page
Generating the controller
Preview
01:01
Creating the repository
02:16
Adding the Sluggable behavior
02:12
Writing a test to check the author posts list
02:26
Writing the method
02:59
Writing the template
01:59
Adapting links in the main and post pages
01:14
Controlling the case of an author with no posts and linking to the main page
02:28
Section 9: Comments
Creating the Comment entity
04:54
Using fixtures to create example comments
03:41
Writing a test to check that comments are showing up
01:01
Creating a partial to show comments
05:16
Showing the number of comments by post
03:01
Writing a test for the creation of a comment
03:20
Generating a Doctrine FormType
03:32
Creating the Create action and adding the form in the template
03:09
Adding a CSS for the form
01:36
Implementing the comment Create action
05:34
Section 10: Setting up security for the administration zone
Generating the AdminBundle
00:35
Creating the security controller
03:40
Adding a layout and CSS for the AdminBundle
02:44
Adding the administrator and configuring the firewall
02:10
Section 11: Authors administration
Generating the CRUD
01:47
Cleaning the generated controller by the CRUD
03:08
Adding the route to the AdminBundle header
01:23
Adapting the test
03:05
Creating the login template
02:38
Cleaning the generated templates by the CRUD
04:40
Adapting the AuthorType and the controller
01:30
Testing the authors administration
00:40
Section 12: Posts administration
Generating the CRUD
00:55
Adapting the test
03:45
Adapting the PostType
00:38
Cleaning the controller
03:22
Adding the route to the AdminBundle header
00:11
Cleaning templates and testing the posts administration
05:37
Section 13: Creating a logout for the AdminBundle
Adapting the firewall
00:37
Creating the action in the security controller
00:28
Adding the route to the AdminBundle header
00:52
Section 14: Creating a redirection for the AdminBundle default route
Writing the redirection test
01:32
Adapting the controller
00:47
Section 15: The service container
Introduction
00:26
Creating our first service for the author
05:05
Refactoring the author controller
01:28
Creating a service for the post
03:12
Refactoring the post controller
01:51
Refactoring the comments creation
04:01
Section 16: URL internationalization
Adapting the tests
00:57
Adapting the controllers
02:19
Checking out the result in the browser
00:40
Section 17: Conclusion
Bonus: Fixing the comments date
Article

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

David Morales, Computer Engineer and IT Teacher

Since the year 2000 I have been teaching to public and private companies from Barcelona, mainly about Unix and Linux systems, and web technologies such as PHP, Javascript and Java.

In 2005 I completed my B.S. in Computer Science at the University of Barcelona.

I have worked for several startups using PHP and the Symfony framework since 2006. In 2011 I switched to Ruby on Rails as my main framework to continue building big complex web sites.

Ready to start learning?
Take This Course