> OOP >

Course Overview

Login to bookmark this course

Write SOLID Code & Impress your Friends

Step up your Symfony skills, learn SOLID principles, and write code that impresses. Be the coder everyone wants to work with.

  • 1643 students
  • EN Captions
  • EN Script
  • Certificate of Completion

Your Guides

About this course

What PHP libraries does this tutorial use?

// composer.json
    "require": {
        "php": ">=8.1",
        "ext-ctype": "*",
        "ext-iconv": "*",
        "composer/package-versions-deprecated": "^1.11", //
        "doctrine/annotations": "^1.0", // 1.12.1
        "doctrine/doctrine-bundle": "^2", // 2.3.1
        "doctrine/doctrine-migrations-bundle": "^3", // 3.1.1
        "doctrine/orm": "^2", // 2.8.4
        "knplabs/knp-time-bundle": "^1.15", // v1.16.0
        "phpdocumentor/reflection-docblock": "^5.2", // 5.2.2
        "sensio/framework-extra-bundle": "^6.0", // v6.1.2
        "symfony/console": "5.2.*", // v5.2.6
        "symfony/dotenv": "5.2.*", // v5.2.4
        "symfony/flex": "^1.9", // v1.21.6
        "symfony/form": "5.2.*", // v5.2.6
        "symfony/framework-bundle": "5.2.*", // v5.2.6
        "symfony/http-client": "5.2.*", // v5.2.6
        "symfony/mailer": "5.2.*", // v5.2.6
        "symfony/property-access": "5.2.*", // v5.2.4
        "symfony/property-info": "5.2.*", // v5.2.4
        "symfony/security-bundle": "5.2.*", // v5.2.6
        "symfony/serializer": "5.2.*", // v5.2.4
        "symfony/twig-bundle": "5.2.*", // v5.2.4
        "symfony/validator": "5.2.*", // v5.2.6
        "symfony/webpack-encore-bundle": "^1.6", // v1.11.1
        "symfony/yaml": "5.2.*", // v5.2.5
        "twig/cssinliner-extra": "^3.3", // v3.3.0
        "twig/extra-bundle": "^2.12|^3.0", // v3.3.0
        "twig/twig": "^2.12|^3.0" // v3.3.0
    "require-dev": {
        "doctrine/doctrine-fixtures-bundle": "^3.2", // 3.4.0
        "fakerphp/faker": "^1.13", // v1.14.1
        "symfony/debug-bundle": "^5.2", // v5.2.4
        "symfony/maker-bundle": "^1.13", // v1.30.2
        "symfony/monolog-bundle": "^3.0", // v3.7.0
        "symfony/stopwatch": "^5.2", // v5.2.4
        "symfony/var-dumper": "^5.2", // v5.2.6
        "symfony/web-profiler-bundle": "^5.2" // v5.2.6

Sure, writing object-oriented code starts with mastering the fundamentals: classes, objects, properties, etc. But without some guiding principles, writing object-oriented code is like using power tools... with no plan about what you're building! You will build something... but you might not be happy with the result... and the next programmer to see the project definitely won't be!

Say hello to SOLID: 5 famous principles, each designed to guide how you write object-oriented code so that it is flexible, understandable, and (most importantly) impresses your friends. In this course, we'll master these principles in a practical, real-world way:

  • Single responsibility
  • Open–closed
  • Liskov substitution
  • Interface segregation
  • Dinosaurs ?, I mean Dependency inversion

Let's sharpen our tools and write some great code!

Next courses in the OOP: Intermediate section of the OOP Track!


Sort By
Login or Register to join the conversation
JuanLuisGarciaBorrego avatar JuanLuisGarciaBorrego 4 years ago

I am waiting for the pattern design course ...

https://symfonycasts.com/sc... .... 😥
You should delete the course ... years without beginning

6 | Reply |

Hey Juan,

We're sorry you have to wait a lot that course. Unfortunately, we really wanted to release that course soon, but we had to changed a few authors of it because for some reasons they got busy or unavailable.

But, actually the good news is that SOLID course is a great progress to the direction of design patterns - we decided to split this part off from the design patterns and prepare users to them via SOLID, as design patters might be tough without this part. So, basically, SOLID is the first part of design patters that we decided to make as a separate course and release it faster.

Thank you for your patience and understanding!


2 | Reply |
Sławomir G. avatar Sławomir G. Victor 3 years ago

"...a few more courses from SymfonyCasts before..." what a pity

| Reply |

Hey Sławek,

We're sorry about that. But that's the pace we move with this course, can't go faster unfortunately. And while this course is under active planning/coding, we also do have some other courses prepared/almost finished that we're working on and that will be released faster.

With "Design patterns" course is a completely different story, as we worked with a few separate authors and nobody was able to finish it unfortunately, that's why we decided to delete it and start with a bit easier SOLID course ourselves.

Thank you for your patience!


| Reply |
Sławomir G. avatar Sławomir G. Victor 3 years ago

understand. Thank you for your sincere reply.

| Reply |

yep, the course have been deleted

| Reply |

I don't how much I've been saying this, but this video is extremely AWESOME ! And in fact, when we look at it, the series already introduces some design patterns

1 | Reply |

Hey ian

You have made my made! Thanks!
Spoiler alert. We are actively working in the design patterns tutorial. I can't tell a release date yet but it will happen this year :)


| Reply |
Sławomir G. avatar Sławomir G. 3 years ago

its really well conceived tutorial, thank You.

1 | Reply |

Making sense...

5 months ago: The course it's been actively developed but it's still too early to know when it's going to be released
2 months ago: Unfortunately, no any possible release dates yet... It's still under active low-level planning, so you will definitely see a few more courses from SymfonyCasts before we start releasing this one.

Chaotic management at symfonycasts i would say... so better use whatever is available and not hope for anything else... or use laravel.
Who ever wants to see a course on Microservices expect the same answer "What would you like to see in such a course" which rolls out since few years already.
Such a good framework but so less effort put into this precious resource oasis which could be Symfony Casts...

1 | Reply |

Hello Mike!

I'm sad to hear you have such impression! First of all, this topic is difficult, and it makes sense that this course may take much more time than other simpler courses. We could just read some text from the book or wiki about SOLIDi and release this course, but instead we would like to prepare good Symfony-related examples that helps to really "understand" this topic in a real project. We're not working on something about adding a tick that you know SOLID principles just because you "hear" about it. We also want to polish our examples to make them clear to users and avoid ambiguous questions in comments.

IIRC we didn't say that this course is the "next", because yes, that would not be true as it's not ready yet. Behind the scene, we create a new course on frontend whenever someone is actively working on this topic. So, if you see it on our website - it's totally under development by its author and you will see it when it's ready. Well, yes, there were a few cases when we lost course authors because they wasn't able to finish the course - this is exactly was happened to Design Patterns course. But this was a really rare case and unfortunately on the really popular topic.

We work with different authors, and that's why some courses by some authors might be finished earlier and so be released earlier as well, especially if the topic is easy. And some may not be released so fast, depends on authors, their availability, the complexity of topic they are working on, etc - there're many factors that affects this.

About Microservices - that's a totally different case. We have never created a course on SymfonyCasts about it. That topic lies in our ideas pool called UserVoice, and that topic was suggested by our users. Yes, we track votes on that topic. Yes, we see it's pretty popular too, but we have never started it yet just because we don't have enough resources for it yet and because our management is not chaotic :). When we start working on microservices - we will create a course on SymfonyCasts about it to let people know. For now, we just collect votes on that topic and would like to know what exactly people are interested in in microservices that would be good to cover, that's why we ask users "What would you like to see in such a course?".

I'm sorry if you wait for this course for a long time, and thank you a lot for your patience! I'd not recommend you to look for new courses on SymfonyCasts and expect that they will be released tomorrow, or next week, etc. Instead, we do recommend to subscribe for new courses on course intro page and you will get 2 notifications: the 1st when course is started releasing, and the 2nd - when the course is completely released. This feature is implemented on our website for a long time, and we do recommend using it. This way you won't miss courses you're interested in.

Anyway, thank you for your feedback, this *is* constructive. We will try to think about our workflow on the team meeting to avoid such problems in the future. From my side, I'll try to do my best to push authors of this course.


| Reply |

Hey victor!

Just to follow-up on what Victor said - I actually agree, we've taken WAY too long on this, and that is our fault and not how we want to operate. We need to do better.

> Who ever wants to see a course on Microservices expect the same answer

About this one, you're totally right - but I haven't committed to making this screencast... I'm not sure if makes sense or not - it's a LOT about infrastructure and not nearly as much about Symfony (and there are a lot of different options for the infrastructure and deploy side). So, that's the reason why I've been collecting info from people on this. It *is* getting up-voted a lot, and that *does* matter.

Anyways, I appreciate you taking the time to post this - I can see that you were motived by frustration, and I'm really sorry that we caused that. We DO need to get better and I take this feedback to heart.


1 | Reply |
Mohamed avatar Mohamed 4 years ago


1 | Reply |
Alberto rafael P. avatar Alberto rafael P. 4 years ago


1 | Reply |
Jose carlos C. avatar Jose carlos C. 4 years ago

Yes, please!

1 | Reply |
Wils I. avatar Wils I. 4 years ago


1 | Reply |
Sławomir G. avatar Sławomir G. 2 years ago

What 's with course about design patterns?

| Reply |

Hey Slawek!

Thank you for your interest in SymfonyCasts tutorials! Have you already completed this one? ;) The design pattern course will be the next one in this topic, but most probably we will release a few more Symfony-related courses before. It's still on the very early stage, so no idea when it might be released. In short, it will be released some day, but we don't know when yet. Please, track the upcoming courses on this page: https://symfonycasts.com/co...


| Reply |
Lionel-F avatar Lionel-F 3 years ago

I Everyone I think a lot of people waiting this tuto, have you a page with a kind of roadmap of tutos incoming in future ? we will have an idea thx

| Reply |

Around 1 - 1.5 weeks :)

1 | Reply |

Ty good news :)

| Reply |

Hello there, any news from the release pla

| Reply |

Hey @Amin you may want to read my answer about this exact question here :)


| Reply |

Hi, Could you please tell us, when this course could be released?

| Reply |

Hey Baran!

We're now actively building the code for this tutorial, the planning and outline phases are already done. After that, we proceed to record the video and release it as it comes up. So, I can't tell you a specific release date but we're getting very close to it! Thanks for your patience


| Reply |

any updates on when this course might be available? I'm 100% the team will release a WOW video tutorial, i just can't wait lol

| Reply |

Hey ian

Thanks for your enthusiasm but unfortunately I can't give you a release date yet. Although, we're working hard on pushing forward this tutorial

| Reply |

are you planning on releasing the full course in one go? Why not release it episode by episode? Thanks for the great work and Happy new year

| Reply |

Hey ian

We usually start releasing a course when it's everything done but video recorded. After that, we release each recorded chapter one per day from Monday to Friday.


| Reply |
Swapnil srivastava avatar Swapnil srivastava 3 years ago edited

Hi @there,

When we can expect this course its more than year now, are we getting the same in first half of 2021?

| Reply |

Hi @Swapnil!

I'm targeting January - we're "stepping on the gas" because, as you correctly noted, this one has taken way too long. I hope it will be worth the wait!


| Reply |

I hope 2021 will bring Design Patterns course. With SOLID and DP courses your site will finally get mature.

| Reply |

Hey Fabien!

Thank you for your interest in SymfonyCasts tutorials! Yes, SOLID will definitely happen in early 2021, about Design Patterns - I'm not sure, but we will see! Thanks for your patience!


| Reply |
Swapnil srivastava avatar Swapnil srivastava weaverryan 3 years ago

Its great to hear the same! Hurray!! Our new year will be fantastic, I subscribed the channel, because you guys are not only covering symfony but you are covering whole base of great programming. I hope in future we will also get more towards design patter, system design LLD and HLD.

Thanks and Hurray!

| Reply |
It O. avatar It O. 3 years ago

hey guys, we waiting for this tutorial

| Reply |

Hey It O.

We're actively working on this tutorial but it still requires quite some work. We don't want to create more trivial content in the internet about SOLID :)


| Reply |
Default user avatar Fabien Pot 3 years ago

Hi Ryan!
I can see a Design Patterns course is not a lucky one. In such a situation I would be grateful if you could recommend any source (I can even buy a book) where I can really learn the design patterns (in PHP) and gain confidence. So far I've been going through the Internet but everything I find is very shortened, 5 minutes read and I feel like I'm doing puzzles, taking a piece of information from one place, a piece from other place, but will never finish the puzzles because it all is not consistent.
I will trust in your recommendations as you are a developer with 10+ years under your belt, the lead for the Symfony Documentation, a speaker at countless conferences across almost ten countries and a core Symfony team member that have also trained teams at fast-growing startups, universities and some of the largest companies in the world. You even co-published a book!

| Reply |
Default user avatar Ruben Hazenbosch Fabien Pot 3 years ago

Design patterns are not something PHP specific, that's why I couldn't find much PHP examples. The Patterns are actually much like a framework, it's a frame that helps you solve problems. That's probably why it takes so long to set this course up. Keeping it understandable for everyone is not an easy job. I'm also looking forward to SymfonyCasts Tutorials on this subject, as they always bring us good quality:)

I can recommend these Youtube video course: https://www.youtube.com/wat...

Looking forward for the course from SymfonyCasts, I'm sure they're working around the clock:)

1 | Reply |

Hey Ruben,

Thank you for your understanding and patience! From my side, I can assure you guys we're still actively working on this course, so it's totally not abandoned.


| Reply |

For those who can't wait "principles of package design" by matthias noback might be a good read.

| Reply |

Hey Markus L. ,

Thank you for this tip! And thanks for your patience, guys!


| Reply |

Hey @Fabien!

> I can see a Design Patterns course is not a lucky one.

Indeed - this one has had some bad luck! I hope we can fix that soon.

> In such a situation I would be grateful if you could recommend any source (I can even buy a book) where I can really learn the design patterns (in PHP) and gain confidence

I would love to recommend something and would be happy to link to a book or another site, but I haven't found any ONE resource that I love (they may be out there, but I haven't seen it). Part of the problem is that, while SOLID is universal, it's a lot more useful to see examples in *your* language (PHP). I haven't watched it, but this topic has been covered on Laracasts, and I know they usually do a very nice job with things.

Until this tutorial is released, if you have any specific questions about SOLID, I'd be happy to answer them - most of this tutorial is now planned, so we have examples and explanations for most parts.


| Reply |
Andreas B. avatar Andreas B. 3 years ago

Any news regarding the release date?

| Reply |

Hey Andreas,

Unfortunately, no any possible release dates yet... It's still under active low-level planning, so you will definitely see a few more courses from SymfonyCasts before we start releasing this one, but I'll assure you that we're working on it and it's abandoned.

Thanks for understanding and your patience!


| Reply |
Bruno B. avatar Bruno B. 4 years ago

When will the course be launched? :)

| Reply |

Hey Bruno B.

Thanks for your interest! Keep watching for updates, unfortunately I still can't give you more information than you can find on this page. Course is in active development stage but no eta.


| Reply |

Any insight when this course might be available? Really looking forward to learn this from you guys

| Reply |
Jose carlos C. avatar Jose carlos C. 4 years ago

Approximate release date?

| Reply |

Hey Jose carlos C.

I can't give you any real release date yet, there are other tutorials on the scope before this one, but if you subscribe to this course you will be notified as soon as it gets released


1 | Reply |
Jose carlos C. avatar Jose carlos C. MolloKhan 4 years ago

I hope the same thing doesn't happen as with the Design Patterns course, it would certainly be a big disappointment.

| Reply |

Delete comment?

Share this comment

astronaut with balloons in space

"Houston: no signs of life"
Start the conversation!