Flag of Ukraine
SymfonyCasts stands united with the people of Ukraine

Write SOLID Code & Impress your Friends

1:54:58

What you'll be learning

// composer.json
{
    "require": {
        "php": ">=8.1",
        "ext-ctype": "*",
        "ext-iconv": "*",
        "composer/package-versions-deprecated": "^1.11", // 1.11.99.1
        "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.18.7
        "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!


Your Guides

Diego Aguiar Ryan Weaver

Buy Access

Join the Conversation?

61
Login or Register to join the conversation
JuanLuisGarciaBorrego Avatar
JuanLuisGarciaBorrego Avatar JuanLuisGarciaBorrego | posted 3 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!

Cheers!

2 Reply
Sławomir G. Avatar
Sławomir G. Avatar Sławomir G. | Victor | posted 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!

Cheers!

Reply
Sławomir G. Avatar
Sławomir G. Avatar Sławomir G. | Victor | posted 3 years ago

understand. Thank you for your sincere reply.
Cheers!

Reply
Sławomir G. Avatar

yep, the course have been deleted

Reply
ian Avatar

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
MolloKhan Avatar MolloKhan | SFCASTS | ian | posted 1 year ago | edited

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 :)

Cheers!

Reply
Sławomir G. Avatar
Sławomir G. Avatar Sławomir G. | posted 2 years ago

its really well conceived tutorial, thank You.

1 Reply
Default user avatar

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.

Cheers!

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.

Cheers!

1 Reply
Mohamed Avatar
Mohamed Avatar Mohamed | posted 3 years ago

Excellent!!!!

1 Reply
Alberto rafael P. Avatar
Alberto rafael P. Avatar Alberto rafael P. | posted 3 years ago

excelent!

1 Reply
Jose carlos C. Avatar
Jose carlos C. Avatar Jose carlos C. | posted 3 years ago

Yes, please!

1 Reply
Wils I. Avatar
Wils I. Avatar Wils I. | posted 3 years ago

Awesome!

1 Reply
Sławomir G. Avatar
Sławomir G. Avatar Sławomir G. | posted 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...

Cheers!

Reply
Lionel-F Avatar
Lionel-F Avatar Lionel-F | posted 2 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
Lionel-F Avatar

Ty good news :)

Reply
Default user avatar

Hello there, any news from the release pla

Reply

Hey @Amin you may want to read my answer about this exact question here :)
https://symfonycasts.com/sc...

Cheers!

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

Cheers!

Reply
ian Avatar

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
MolloKhan Avatar MolloKhan | SFCASTS | ian | posted 2 years ago | edited

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
ian Avatar

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
MolloKhan Avatar MolloKhan | SFCASTS | ian | posted 2 years ago | edited

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.

Cheers!

Reply
Swapnil srivastava Avatar
Swapnil srivastava Avatar Swapnil srivastava | posted 2 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!

Cheers!

Reply
Default user avatar

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!

Cheers!

Reply
Swapnil srivastava Avatar
Swapnil srivastava Avatar Swapnil srivastava | weaverryan | posted 2 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

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 :)

Cheers!

Reply
Default user avatar
Default user avatar Fabien Pot | posted 2 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
Default user avatar Ruben Hazenbosch | Fabien Pot | posted 2 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.

Cheers!

Reply
Markus L. Avatar

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!

Cheers!

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.

Cheers!

Reply
Andreas B. Avatar
Andreas B. Avatar Andreas B. | posted 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!

Cheers!

Reply
Bruno B. Avatar
Bruno B. Avatar Bruno B. | posted 3 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.

Cheers!

Reply
ian Avatar

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. Avatar Jose carlos C. | posted 3 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

Cheers!

1 Reply
Jose carlos C. Avatar
Jose carlos C. Avatar Jose carlos C. | MolloKhan | posted 3 years ago

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

Reply
Cat in space

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

userVoice