01.12.2022, 00:36
Symfony Web Development Complete Guide: Beginner To Advanced
Last updated 4/2022
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 10.49 GB | Duration: 24h 21m
Master Symfony PHP framework: from theory, through simple crud app, up to creating an advanced Real Life Application
What you'll learn
You will learn Symfony 4 & 5 from theory to advanced level by creating real life projects
You will create two apps: simple crud app and an advanced video sharing service with PayPal integration, deployment to Heroku etc.
You will learn how to create multilevel nested categories tree in PHP
You will learn how to install Symfony
You will learn about Symfony configuration
You will learn about Symfony Flex
You will learn about HTTP processing workflow in Symfony framework
You will learn routes
You will learn controllers
You will learn views in Symfony using Twig
You will learn html forms in Symfony
You will learn Doctrine ORM (how to use database)
You will learn entities (models) in Symfony and relations between them
You will learn about service container & services in Symfony
You will learn dependency injection (autowiring in Symfony)
You will learn console command
You will learn how to create events and listeners
You will learn how to use sessions & cookies in Symfony
You will learn how to send emails
You will learn how to do translations in Symfony
You will learn about security concepts in Symfony (login, registration, etc.)
You will learn unit & functional testing
You will learn about debugging Symfony applications
You will learn about cache
You will learn how to use Redis for session and cache
You will learn about doctrine table inheritance in Symfony & polymorphic database queries
You will learn how to deploy a Symfony application to Heroku (make application online)
You will learn how to integrate PayPal with the Symfony application for making subscription billing
You will learn how to use external API (Vimeo api) and use it with the Symfony application
You will be able to create your own websites or web applications in Symfony framework
You will learn basics of RabbitMQ message broker
You will learn basics of Messenger Component
You will learn CQRS pattern - command query responsibility segregation
You will learn REST API with Symfony & API Platform
Requirements
PHP language and object oriented programming
Basics of HTML, CSS, JavaScript
How to install software on your computer and have internet connection
You need to have server environment installed, e.g. Ubuntu, Xampp etc. to work with PHP applications locally
Description
Welcome to the best course of Symfony - the great PHP framework!In this course you will learn Symfony from basic to advanced level!By the end of this course you will be able to create both simple websites and complex dynamic web applications in the great Symfony PHP framework.Very practical course! Almost all sections/concepts are explained using real life applications/scenarios. In this course we will create a huge real life app (probably you will not find a course where built more advanced app like in this course)This is a very massive guide to Symfony, which is one of the most popular PHP frameworks. Symfony 4 version introduced a new approach to php frameworks - it starts small as a microframework and grows as you need new features. You install them using the amazing Symfony Flex tool. For example, if you are making a simple website and do not need a login functionality then there is no code responsible for logging in the framework directory. Thanks to this our application contains only as much as we really need. **********************************************The course consist of three main parts:1. The theoretical part where I discuss the basic Symfony concepts on examples with effects on a web browser2. In the second part we will build a simple application in Symfony - a list of tasks to be performed (database used)3. In part 3 we will build an advanced web application for video subscription in which we integrate PayPal for payments, multi-level nested video categories, communication with Vimeo API, deployment to Heroku serveras well as:BONUS section added (October 2019) - basics of Symfony Messenger Component, RabbitMQ message broker and CQRS pattern (Command Query Responsibility Segregation) with practical example by simulating e-commerce system consisting of main app and cooperating microservices.Course update: (January 2020) new section added REST API with Symfony & API Platform**********************************************During the course we will be covering many simple and advanced Symfony concepts such as: routing, controllers, views, database with doctrine orm, entities and relationships between them: one to one, one to many and many to many; events & listeners, security topics such as login, registration, authorization; also unit and functional testing, dependency injection, service container, symfony services, doctrine table inheritance with polymorphic database queries, REST API and many more.This course is a combination of theory and project-based learning approach. Learning by building real projects is the best way to learn programming languages and tools like php frameworks.All of the course applications were made using Symfony 4 (except applications for rest api section - Symfony 5). Upgrade to Symfony 5 section was added to the course. According to Symfony standard, there are no any new features in Symfony 5.0 compared to Symfony 4.4.Remember that only practice makes perfect. If necessary, study the course two or more times. Take notes during the course like a real student. Use documentations, Google search. Finally, try to write the application yourself, not necessarily the same as in the course, you can try to change, add something, etc. No single course will make you a very good web developer. It can only bring you closer to this goal. The more practice, the better.--------------------------------------------QAQuestion:You used Symfony 4 and Symfony 5 in this course for creating apps to practice knowledge. Why not use only the latest version? Does it mean that this course is outdated and I will not benefit from it?Answer:Absolutely not! In tools like PHP frameworks the fundamentals and base syntax almost never change regardless of the version. But of course any maintained software evolves all the time. That's why I always suggest you to use the version of software that instructor uses in the course. It prevents from errors and confusions. As a someone who wants to learn web development you should be aware, that real web development involves also adapting the code to newer versions if necessary - but this is not always necessary, not every company do that. Software changes so often that the instructors would not be able to create the courses so that they match the latest version. This is not even advisable, because as a student you would loose an important aspect of real web development - the awareness that everything is changing and you need to be able to deal with it.---------------------------------------------Enroll now and let's start learning Symfony!There is no risk! 30 day money back guarantee (as always at Udemy)
Overview
Section 1: Introduction
Lecture 1 Welcome to the course
Lecture 2 About Symfony
Lecture 3 Tools and requirements for students
Lecture 4 How to use the course
Lecture 5 Course applications overview
Lecture 6 Quick note about coding standards
Lecture 7 How to get helped
Section 2: Symfony 4 & 5 basics, installation & configuration
Lecture 8 Symfony 4 installation & requirements
Lecture 9 Symfony 4 configuration
Lecture 10 Installing libraries with Symfony Flex
Lecture 11 Request & response objects, HTTP processing workflow
Section 3: Theory - Symfony 4 & 5 core features
Lecture 12 Before you start watching this section of the Symfony course
Lecture 13 Routes
Lecture 14 Controllers
Lecture 15 Views
Lecture 16 Entities (models)
Lecture 17 Service container & services - part 1
Lecture 18 Service container & services - part2
Lecture 19 Advanced routes
Lecture 20 Flash messages
Lecture 21 Cookies
Lecture 22 Session
Lecture 23 POST & GET data
Lecture 24 Custom error pages
Lecture 25 Handle exceptions
Lecture 26 Binding services to controllers
Lecture 27 More features in controllers
Lecture 28 Views - tags, filters, functions, tests, operators
Lecture 29 Views - genereate url's and escaping strings
Lecture 30 Views - global variables
Lecture 31 Views - Webpack Encore
Lecture 32 Views - using app variable
Lecture 33 Views - embed controllers in view
Lecture 34 Doctrine crud - create
Lecture 35 Doctrine crud - read
Lecture 36 Doctrine crud - update
Lecture 37 Doctrine crud - delete
Lecture 38 Doctrine raw queries
Lecture 39 Doctrine param converter
Lecture 40 Doctrine LifecycleCallbacks option
Lecture 41 Doctrine one-to-many & many-to-one relationships
Lecture 42 Doctrine database relationships - cascade remove ralated objects
Lecture 43 Doctrine one-to-one relationship
Lecture 44 Doctrine many-to-many self referencing relationship
Lecture 45 Doctrine Query Builder & eager loading
Lecture 46 Doctrine table inheritance mapping in Symfony (polymorphic queries) - part 1
Lecture 47 Doctrine table inheritance mapping in Symfony (polymorphic queries) - part 2
Lecture 48 Doctrine table inheritance mapping in Symfony (polymorphic queries) - part 3
Lecture 49 Service parameters
Lecture 50 Service & autowiring by constructor injection and service arguments
Lecture 51 Service configuration
Lecture 52 Services - setter injection for optional dependencies
Lecture 53 Services - property injection
Lecture 54 Install composer package before the next lecture
Lecture 55 Services - lazy services
Lecture 56 Service - aliases
Lecture 57 Service - tags
Lecture 58 Service - dealing with different implementations of a service
Lecture 59 Services list
Lecture 60 Cache - basic usage
Lecture 61 Cache - tags
Lecture 62 Symfony console
Lecture 63 Use profiler tool in Symfony
Lecture 64 Environments vs kernels
Lecture 65 Deploy Symfony application
Lecture 66 Events & Listeners base concepts
Lecture 67 Create listener
Lecture 68 Dispatching events
Lecture 69 Create subscriber
Lecture 70 Subscriber - many events handled by one subscriber
Lecture 71 Subscriber - events priorities
Lecture 72 Form - create a class
Lecture 73 Form - render in view
Lecture 74 Form - themes
Lecture 75 Form - send
Lecture 76 Form - validation
Lecture 77 Form - events
Lecture 78 Form - fields not related to entity
Lecture 79 Form - upload files
Lecture 80 Email - install email package & send an email
Lecture 81 Email - spooling
Lecture 82 Email - functional testing
Lecture 83 Security - create user
Lecture 84 Security - register
Lecture 85 Security - login
Lecture 86 Security - logout
Lecture 87 Security - login & remember login state
Lecture 88 Security - csrf
Lecture 89 Security - use security checker
Lecture 90 Install expression-language package
Lecture 91 Security - authorization using annotations
Lecture 92 Security - authorization using configuration file
Lecture 93 Security - authorization using denyAccessUnlessGranted method
Lecture 94 Security - authorization in view files
Lecture 95 Security - authorization using voters
Lecture 96 Unit tests - install
Lecture 97 Unit tests - first unit test
Lecture 98 Functional tests - install
Lecture 99 Functional & unit tests - common assertions
Lecture 100 Functional tests - click links
Lecture 101 Functional tests - send a form
Lecture 102 Functional tests - data providers
Lecture 103 Functional tests - tests in isolation
Lecture 104 Tests - mock objects
Lecture 105 Tests - code coverage report
Lecture 106 Translations - install a package
Lecture 107 Translations - views
Lecture 108 Translations - controllers
Lecture 109 Translations - routes
Lecture 110 Translations - pluralization
Section 4: First application in Symfony: to-do list app (CRUD)
Lecture 111 Before you start watching this section of the Symfony course
Lecture 112 Installation and creating virtual host (To-Do App)
Lecture 113 Move html template to Symfony (To-Do App)
Lecture 114 Create controller methods (To-Do App)
Lecture 115 Make entity in Symfony and use it (To-Do App)
Lecture 116 Display list of all tasks on the website (To-Do App)
Lecture 117 Switch status of a task (To-Do App)
Lecture 118 Delete a task (To-Do App)
Section 5: Controllers, routes, views - install and move html template to Symfony (App)
Lecture 119 Before you start watching this section of the Symfony course
Lecture 120 Installation of Symfony 4 framework and moving template to it
Lecture 121 Continue with moving html template to Symfony
Lecture 122 Make template links working in Symfony - part 1
Lecture 123 Make template links working in Symfony - part 2
Lecture 124 Make template links working in Symfony - part 3
Lecture 125 Make template links working in Symfony - part 4
Lecture 126 Make template links working in Symfony - part 5
Lecture 127 Install Webpack-Encore
Section 6: Doctrine entities, relations, fixtures,console commands - video categories (App)
Lecture 128 Category entity (model)
Lecture 129 Continue with Category fixtures - part 1
Lecture 130 Continue with Category fixtures - part 2
Lecture 131 Display main categories on website
Lecture 132 Create custom Twig filter
Lecture 133 Category class for front-end
Lecture 134 Build php array for nested categories
Lecture 135 Create nested categories on front-page
Lecture 136 Finish displaying categories on front-page
Lecture 137 Display categories in admin area - part 1
Lecture 138 Display categories in admin area - part 2
Lecture 139 Edit category in admin panel - part 1
Lecture 140 Edit category in admin panel - part 2
Lecture 141 Edit category in admin panel - part 3
Lecture 142 Edit category in admin panel - part 4
Lecture 143 Edit category in admin panel - part 5
Section 7: First unit tests, mocking classes (Symfony App)
Lecture 144 Unit testing of categories - part 1
Lecture 145 Unit testing of categories - part 2
Lecture 146 Unit testing of categories - part 3
Lecture 147 Unit testing of categories - part 4
Lecture 148 Unit testing of categories - part 5
Section 8: First functional tests with isolation (Symfony App)
Lecture 149 Functional testing of categories - part 1
Lecture 150 Functional testing of categories - part 2
Lecture 151 Functional testing of categories - part 3
Lecture 152 Functional testing of categories - part 4
Section 9: Paginate, sort and search - videos on the website and test it (Symfony App)
Lecture 153 Create video fixtures
Lecture 154 Videos on front-page
Lecture 155 Pagination
Lecture 156 Display videos from child categories
Lecture 157 Sort videos
Lecture 158 Search results
Lecture 159 Functional testing of videos - part 1
Lecture 160 Functional testing of videos - part 2
Lecture 161 Functional testing of videos - part 3
Section 10: Login and authorization system, sample user data - fixtures (Symfony App)
Lecture 162 Symfony login system - part 1
Lecture 163 Symfony login system - part 2
Lecture 164 Symfony login system - part 3
Lecture 165 Symfony login system - part 4
Lecture 166 User roles - part 1
Lecture 167 User roles - part 2
Lecture 168 User roles - part 3
Lecture 169 Display links for users depending on login status - part 1
Lecture 170 Display links for users depending on login status - part 2
Lecture 171 Securing access to superadmin pages
Lecture 172 Check security
Section 11: Html forms, register new users (Symfony App)
Lecture 173 User registration - part 1
Lecture 174 User registration - part 2
Lecture 175 User registration - part 3
Section 12: Other functional tests (Symfony App)
Lecture 176 Functional testing of categories - part 1
Lecture 177 Functional testing of categories - part 2
Lecture 178 Functional testing - accessing url's - part 1
Lecture 179 Functional testing - accessing url's - part 2
Section 13: Doctrine and LifecycleCallbacks, repositories - comments on videos (Symfony App)
Lecture 180 Comments functionality
Lecture 181 Comment fixtures
Lecture 182 Dynamic value of comments number
Lecture 183 Display video details
Lecture 184 Display comment details
Lecture 185 Create new comment
Lecture 186 Functional testing
Lecture 187 Functional testing of comments
Section 14: Many-to-many Doctrine relation - likes/dislikes functionality (Symfony App)
Lecture 188 Video entity
Lecture 189 Fixtures for videos
Lecture 190 Display likes/dislikes - part 1
Lecture 191 Display likes/dislikes - part 2
Lecture 192 Display likes/dislikes - part 3
Lecture 193 Display likes/dislikes - part 4
Lecture 194 Sort by likes - part 1
Lecture 195 Sort by likes - part 2
Lecture 196 Improve searching
Lecture 197 List videos in admin panel
Lecture 198 Improve functional testing
Lecture 199 Functional testing of likes - part 1
Lecture 200 Functional testing of likes - part 2
Lecture 201 Functional testing of likes - part 3
Lecture 202 Code refactoring - part 1
Lecture 203 Code refactoring - part 2
Section 15: Doctrine database relations & Redis for session - video subscriptions (App)
Lecture 204 Subscription functionality - part 1
Lecture 205 Subscription functionality - part 2
Lecture 206 Admin profile
Lecture 207 Create video placeholder functionality
Lecture 208 Code refactoring
Lecture 209 Install Redis
Section 16: Register new users with choosing video subscription plan (Symfony App)
Lecture 210 Register with proper subscription plan - part 1
Lecture 211 Register with proper subscription plan - part 2
Lecture 212 Register with proper subscription plan - part 3
Lecture 213 Register with proper subscription plan - part 4
Lecture 214 Enable cascade deletion of videos and comments
Lecture 215 Functional testing of subscription
Section 17: Flash messages, update user profile using Doctrine (Symfony App)
Lecture 216 Delete admin profile
Lecture 217 Update admin profile - part 1
Lecture 218 Update admin profile - part 2
Lecture 219 Update admin profile - part 3
Lecture 220 Update admin profile - part 4
Lecture 221 Functional testing of user account
Lecture 222 Superadmin profile
Lecture 223 Functional test
Section 18: Upload files - two implementations of uploader interface (Symfony App)
Lecture 224 Upload video - part 1
Lecture 225 Upload video - part 2
Lecture 226 Upload video - part 3
Lecture 227 Delete videos
Lecture 228 Categories select list in admin panel
Lecture 229 Change video for no members
Lecture 230 Remove novalidate attribute from html forms
Lecture 231 Upload videos to Vimeo
Lecture 232 Set duration for uploaded video
Lecture 233 Delete a comment
Section 19: Events & listeners, sending emails (Symfony App)
Lecture 234 Create listener in Symfony
Lecture 235 Send email on the event of adding a new video
Lecture 236 Functional testing
Section 20: Translations to other languages (Symfony App)
Lecture 237 Translations - part 1
Lecture 238 Translations - part 2
Section 21: Caching pages, services & event subscribers (Symfony App)
Lecture 239 Cache - part 1
Lecture 240 Cache - part 2
Lecture 241 Cache - part 3
Lecture 242 Cache - part 4
Lecture 243 Cache - part 5
Section 22: Different enviromnents - Heroku deployment (Symfony App)
Lecture 244 Before you start watching this section of the Symfony course
Lecture 245 Heroku deployment - part 1
Lecture 246 Heroku deployment - part 2
Section 23: Symfony services by PayPal integration (Symfony App)
Lecture 247 Attention!
Lecture 248 PayPal integration - part 1
Lecture 249 PayPal integration - part 2
Section 24: REST API with Symfony & API Platform
Lecture 250 Introduction
Lecture 251 Install Symfony 5 and EasyAdmin bundle
Lecture 252 Install API Platform. Create entities using Schema Generator component of API Pl
Lecture 253 Customize EasyAdmin bundle
Lecture 254 Upload images through EasyAdmin
Lecture 255 Create related entities to manage through EasyAdmin
Lecture 256 Authentication and authorization to EasyAdmin app
Lecture 257 Create client JavaScript app to consume restAPI Platform app. GET API endpoint
Lecture 258 Create pagination
Lecture 259 Create a simple router
Lecture 260 Sort api query result using API Platform order filter
Lecture 261 Use exists filter of API Platform
Lecture 262 Use search filter of API Platform
Lecture 263 API Platform serialization groups (normalization and denormalization)
Lecture 264 Test structured json-ld data with Google tools
Lecture 265 The second javascript app to consume api. GET api request, disable pagination
Lecture 266 Add an offer. POST rest api request
Lecture 267 Delete an offer. DELETE rest api request
Lecture 268 Install & configure JWT authentication package
Lecture 269 Register a new user
Lecture 270 Login to application
Lecture 271 Create offers database relation for users, authorization
Lecture 272 Using API Platform event subscriber
Lecture 273 API Platform subresources (nested endpoints)
Lecture 274 Create listener class to produce additional data to the JWT response - user id
Lecture 275 Refactoring: make easier authorization. Use JavaScript Promises
Lecture 276 Handle 401 error status code when invalid JWT token
Lecture 277 Login automatically when invalid token
Lecture 278 Lost password functionality - part 1
Lecture 279 Lost password functionality - part 2
Lecture 280 Lost password functionality - part 3
Lecture 281 Lost password functionality - part 4
Lecture 282 Lost password functionality - part 5
Lecture 283 Lost password functionality - part 6
Lecture 284 Lost password functionality - part 7
Lecture 285 Upload a file through REST API - part 1
Lecture 286 Upload a file through REST API - part 2
Lecture 287 Upload a file through REST API - part 3
Lecture 288 Validation and errors handling
Lecture 289 Testing API with PhpUnit
Lecture 290 Fix GetOffers authorization
Lecture 291 API Platform Cache
Lecture 292 Deploy API Platform app to Heroku
Lecture 293 Fix "can not be converted to string" error
Lecture 294 Final thoughts
Section 25: BONUS section: RabbitMQ & CQRS with Symfony Messenger
Lecture 295 Before you start watching this section of the Symfony course
Lecture 296 Symfony Messenger Component - introduction
Lecture 297 RabbitMQ basics
Lecture 298 CQRS - introduction
Lecture 299 Time for practice: simulate e-commerce system using Messages
Lecture 300 Install first Symfony app
Lecture 301 Create a controller for e-shop website
Lecture 302 Install Symfony Messenger Component & use it
Lecture 303 Dispatch CreadeOrder message
Lecture 304 Dispatch SignUpSms message
Lecture 305 Route messages to Doctrine transport
Lecture 306 Install RabbitMQ
Lecture 307 Create Symfony microservice and send messages to it
Lecture 308 Create another Symfony microservice and send messages to it
Lecture 309 Create two another Symfony microservices and send messages to them
Lecture 310 Where to go from here
Section 26: Upgrade guide
Lecture 311 Upgrade Symfony from >=4.0 version
Lecture 312 New features in the next major Symfony release (5)
Everyone who want to learn Symfony framework,Everyone who is interested in building web applications and websites
Homepage