When to use Traits, Interfaces, and Abstract Classes in PHP
HTML-код
- Опубликовано: 14 июн 2024
- If you've been working in PHP for at least a little while, chances are you've come across a Trait, Interface, or Abstract Class. What are they? How can I use them effectively?
Let's dive in and discover a couple of use cases for each of them, and I'll explain some of their differences (and similarities).
- 0:00 TL;DR
- 0:47 Intro
- 1:25 Traits
- 5:48 Interfaces
- 10:27 Abstract Classes
- 14:49 All Done
Send me new video ideas and vote on what's coming next: suggest.gg/aschmelyun
Follow me on Twitter! / aschmelyun
Join my newsletter, where I send out new information about twice a month in the PHP, JavaScript, and Docker realms: aschmelyun.substack.com Наука
This is by far my favourite channel for learning SOLID and design patterns. I've struggled with this subject for so long.
You're not the only one, I've also struggled with them a lot! I'm glad you liked the video.
Always a good idea to refresh the basics. Thank you 👍
Man, this is so clearly explained. What a great refresher. Thanks Andrew!
Really appreciate the real-life example of play/concert/movie to illustrate when best to use trait and interface.
Straight to the point.
I'll be watching this video a lot in the coming months, thank you.
Awesome explanation! I found your channel through our mutual buddy Salazar, and you explained these concepts a bit better than Jeffrey Way did when I first saw his PHP OOP series on Laracasts years ago. Keep em coming!!
That's awesome! And wow, that's a massive compliment, thanks! I'm glad you liked the video, and I'll definitely have to continue making videos like this.
Such a clear explanation! Thank you, Andrew!
I'm glad to hear it! Clear is what I aim for
Thanks for the explanation and the examples. After reading the docs, I wasn't quite sure why all 3 exist and when to use them. Now with all 3 in context together, it makes perfect sense.
This is one of the biggest reasons why I made this video: context. It's how I learn best, I need to see examples of certain concepts in order for them to really click. Glad you liked the video!
thank you, explanation is easy to understand and follow
Such a helpful tutorial, it boosted my basics. Thank you ❤
Glad you liked it, thanks for watching!
You just got yourself a new subscriber!!! Thanks Andrew.
Wonderful explanation! Thank you ❤
I knew Interfaces, I knew Traits, I literally have never thought of Abstract classes as a combination of those two things - thanks!!
Of course, glad you liked the video!
Great Explanation!!!
Traits are one of my favorite PHP features, they’re so helpful. I have a tenanted B2B application which runs in both the “user context” and the “business context” interchangeably. With a shared trait on both my User and Business models, I can access and interact with the current user (or their business) on either model, or even on any of their Eloquent relations too. Makes for great DX in a complex application like this one.
A demo or github link is highly appreciated
Very cool. I also have application tenanted B2B with laravel.
What does trait have to do with tenancy? It's language assisted copy paste, you get to have same code without inheritance. Why is it so helpful in context of tenanted Eloquent models? I'm sorry if I sound like "that" guy but without context it's unclear what exactly helped you and what the problem you solved even was and why was using a trait the way to go.
Great refresher, thanks!!
very good explanation, thanks
Oh merci d’avoir abordé ce sujet
you explain everything very well, i could make very useful notes out of your video. thank you for the demonstration!
Thank you for the kind words!
Thank you Andrew.
awesome and super clear demo 😊✅✅
Thanks, I'm glad you appreciate it!
Excelent video.
Great example and as usual a very clear explanation. Thanks, Andrew!
I have followed your vids for a while, but I just noticed I never subscribed. I did that today ;)
Hey, thanks! That means a lot, appreciate the subscribe!
amazing video
Thanks, I'm glad you liked it!
So helpful
thanks
Thanks man ❤❤
Any time!
what ide and extension do you use to see that beautiful error box/message when hovering? thanks
It’s just the default behavior from PHPStorm
Very well explained.
Which vs code extension can help to easily comment php documents in code?
👍
Which editor is this , php storm ?
Yep!
how managed to execute the object without composer or namespace ?
when I try to execute, php index.php, an error message appears. Fatal error: Uncaught Error: Class "movie" not found in C:\laragon\www\index.php:17
I had to put require_once.