
Preview the course outline and aim for a functional ecs-like app with posts, likes, follows, and comments, while mastering controllers, routing, templates, migrations, fixtures, repositories, param converters, relations, and security.
Set up a Windows development environment for Symfony by installing Composer and Docker to run a MySQL container, with optional alternatives like Psalm, Symfony Docker, and cloud-based MySQL options.
Install and configure php 8.2 on Windows and set up composer by downloading the non thread safe php zip, extracting it, updating the path, and verifying with php -v.
Install composer on Windows to create PHP projects and manage libraries. Use the Windows installer, point to your PHP path, then verify with composer.
Install and run Docker on Windows by installing Docker Desktop, setting up WSL 2 kernel, and restarting the system to launch Docker successfully.
Install the Symfony CLI on Windows using scoop or binaries, verify the installation, then use the CLI to create projects and run a local development server.
Set up your Mac for symphony development by installing PHP, composer, and Docker, with optional tools like sump, the Symphony Docker project, and planet scale for MySQL.
Install php on Mac using the homebrew package manager with brew install php and verify with php -v. Update homebrew and run brew upgrade php to keep php current.
install composer on macOS after PHP is installed, using homebrew to install or upgrade the PHP package manager that handles third party libraries and frameworks.
Determine your mac chip (apple silicon or intel), install the matching docker for macOS, drag to applications, replace if prompted, then launch docker desktop and enter your password if asked.
Explore the Symfony directory structure from bin to vendor, including config, public, z (src), var, and lock folders, plus composer.json, composer.lock, and the .env file.
Learn how Symfony controllers handle requests and return responses, create a hello controller with a namespace, define actions, and configure routes via YAML, then inspect routes with the debug router.
Discover how Twig template inheritance lets you extend a base template, define blocks like body and title, and render pages without duplicating HTML across templates.
Explore relational databases like PostgreSQL or MySQL using tables, columns, and rows, and learn how Doctrine ORM maps PHP classes to tables, creating and saving rows in Symfony.
Create an entity with the maker tool and map it to a database table using Doctrine ORM, defining fields like title, text, and created date with an id primary key.
Explore how Doctrine migrations create and apply database changes in a Symfony project, including generating migration files, applying and rolling back migrations, and using status checks.
Learn about Symfony 6.3 changes, including removal of add and save methods. Use the entity manager with persist and flush to store and update data.
Master granular form rendering in Symfony by using functions like form start, form end, label, widget, and errors, and customize fields with variables, labels, and actions for flexible styling.
Explore how Symfony form themes customize rendering of labels, widgets, and errors, with Bootstrap and Tailwind options configured via YAML, and how to apply custom classes for styling.
Implement an edit form for micro posts by reusing the add action, using the param converter to load the post by id, and persisting changes with the entity manager.
Learn to style the micro post list using a responsive CSS grid with tailwind, adding post text, date formats, like button mockups, and dark mode tweaks across mobile to desktop.
Add breadcrumbs navigation by refactoring to a post partial and using include to render posts, while updating base templates to display post, adding post, and editing post pages.
Define and apply a custom Symfony form theme by creating render blocks for errors in a tweak, then enable it via tweak.yaml to style form errors with bootstrap or tailwind.
Discover Doctrine relations and learn how one-to-many, one-to-one, and many-to-many associations between posts, comments, and user profiles are mapped and managed by Doctrine, using PHP eight attributes.
Create a one-to-one relationship between user and user profile, generate and migrate the entities, and enforce a bidirectional link with a foreign key and unique index.
Explore a Doctrine one-to-many relation between micro posts and comments, focusing on the owning side, cascade persist, lazy versus eager loading, and adding or removing comments via repositories.
Demonstrates implementing a many-to-many relationship between users and micro posts with a join table, enabling likes from many users to many posts.
Doctrine abstracts away the SQL queries nicely. Though, sometimes using these abstractions can become costly. Let's see how to avoid running into issues when inadvertently making too many queries.
Let's display comments below the posts. We will create a great-looking timeline design using Tailwind CSS.
A high level overview of the authentication (logging in) and authorization (who can do what) features in Symfony. Gives an overview of the whole section and introduces some concepts.
User passwords need to be hashed when stored. Let's see how to do that, and by the way, how to create some user accounts in the fixtures.
Build a custom symphony console command to create users from the command line, defining required email and password arguments, and implementing configure and execute with user feedback.
Learn to log out an authenticated user by configuring a logout path under the firewall and redirecting to the login page. Use a PHP 8 attribute in the controller.
Relate micro posts and comments to the user by adding many-to-one relations, learn to get the currently authenticated user, and explore access control in Symfony using maker bundle and migrations.
Recreate the schema during development and clear the doctrine migrations versions table to resolve unrun migrations; use migrations only when a project has data and is deployed.
Explore how to implement flexible permission handling with Symfony voters. Learn to create a micro post voter, check attributes and subjects, inject the security component, and review access decisions.
Go beyond tutorials. Build a real Symfony application from the ground up.
Symfony is one of the most powerful and flexible PHP frameworks in the world — used by companies like Spotify, BlaBlaCar, and Trivago. In this hands-on course, you’ll master Symfony with modern PHP 8 by building a Twitter-inspired social media platform that’s fully functional, deployable, and portfolio-ready.
We start from zero — setting up your environment and walking through Symfony’s structure — and quickly move to building real features:
Routing & Controllers for clean, organized code
Twig Templates for dynamic, reusable user interfaces
Doctrine ORM for efficient database handling
Tailwind CSS for beautiful, responsive styling
User Authentication & Security with Symfony best practices
Dependency Injection for scalable, maintainable code
Interactive features like likes, follows, and user profiles
You’ll gain production-ready skills while creating a project you can actually show to employers or clients. This is not a set of disconnected code snippets — it’s a full application, built step-by-step, with clear explanations for every concept.
Who’s this for?
PHP developers ready to master Symfony
Full-stack devs looking to strengthen backend skills
Anyone with basic PHP knowledge wanting to build real-world apps
By the end, you’ll have mastered the Symfony workflow from setup to deployment — and have a social web app to prove it.