hi derek i just started learning php and mysq. i have question on php and mysql coding. can i email you the code to you could tell me what i did wrong. I don't know how to fix the error. much appreciated 🙏
You're the first tut video maker I've seen that doesn't take forever to spit the words out, or constantly digress with side-thoughts. You effortlessly compacted an enormous amount of info into this vid, in record time. Thanks Derek I now have an almost complete understanding of classes & objects!
11:00-11:03 best programmer quote of the year. I enjoy your videos though, best i could find on youtube for my tastes, hope you don't quit anytime soon. In general, great work!
I can not stress enough how much this has helped. I am a long time PHP coder who has always had a mental block with classes OOC. This will help greatly in me writing more secure code, using less variables being passed in the URL.
I came from the plain old procedural PHP programming and had been struggling to find a decent tut to make me understand OOP design and this is far the best tut i ever found on the internet. Thank you! Subscribed.
btw, if I may suggest, can you pursue this series by adding OOP PHP-MySQL tutorial video. I honestly want to know how would OOP design be considered once you will need to have the interaction with database. Should there be a class for all sql query? something like that maybe?
Fantastic! I absolutely love the way you present information and the speed of your videos! Please do NOT change! I understand that those who are not familiar with the terminology will find it difficult to follow, but once you have progressed beyond that stage it can get so tiring and time-consuming to wade through these basics in order to get the real information. Your videos are like a breath of fresh air. Thank you.
Derek, not only Your tutorials are extremely efficient and professional, but i love the mood You are presenting it all with. Some kind of a funny sarcastic comedy type positive voice that makes it feel as if everything is easier than it seems and so it puts my mind in a way that it is fun to learn and makes me hungry for this knowledge. Thank You so much, i hope You are getting at least something out of these videos, because what You give us is priceless. Big fan and a learner from Lithuania! :)
Your tuts are to the point and does not waste time with all kinds of rubbish info or slow typing and you don't waste time. Your tut videos are AWESOME, keep up the GREAT work !.
Watched this again for a review as I get deeper into Wordpress. All of the unsure things of php were already all explained here. Thanks for making such a compact and info-rich videos.
Hello Derek.. I just want to personally thank you for creating quality videos about programming and stuff that are relevant to it. This way we can learn from your videos without paying and going to school. Hopefully, we can pay it forward to many people in the future. Thank you very much! :)
Thank you so much for this! This is the best, most coherent and comprehensive tutorial on php classes I have been able to find! I finally understand so much more and see possibilities and flexibility where I was once confused. I will be watching more of your tutorials! Thank you!
You are awesome. I thought to subscribe in the middle of this video specifically but guess what I already have your channel subscription. Thank you for such a cool video. It's like easing out pain and putting me in a situation to know more PHP OOP.
Just coming back to my original PHP tutorials I followed a while ago. Thanks Derek for making these videos! I'm now a Web developer and it all started from these videos. marcus
I love this video because I already have knowledge of Classes in other programming language, and I just needed a summary of it in PHP. This makes it so easy to compare and translate from one to another. Awesome Video! Thank you!
I have been programming in php in a functional style, not OOP. This tutorial really filled in a lot of gaps that I did not understand before. Thank you!!!
I honestly feel that Derek has helped change the face of the internet. He is teaching and inspiring the developers of today to develop the internet for tomorrow. Bravo.
Thank you for the very nice compliment :) Wow, that was very nice. I hope that I have been able to help. I'm very lucky to be in the position to do this.
Like any other PHP static variable, static properties may only be initialized using a literal or constant before PHP 5.6; expressions are not allowed. In PHP 5.6 and later, the same rules apply as const expressions: some limited expressions are possible, provided they can be evaluated at compile time.
This seems like a great video for someone who already has some knowledge about coding and not for beginners... but since I belong to the first group THANKS!!
WOW that was a bunch of information in 26 minutes! You are good! I am a beginer so I will need to watch this a couple of times. Thanks for the tutorial, dude!
I really like your videos, man ! I learnt lots of things in your videos instead of my college course in a short period of time ! Thank you very much for sharing your knowledge !
Hi Derek! Thanks for all your great tutorials. I was watching this one and following along in my computer. I ran into some differences and wonder what it could be due to. When I have a method in a class with a echo line and then I create the class and then call the method, I don't get the echo showing in my chrome web browser. I can see it is working as I can return something in the method and that will display, but any echo lines I put in the method do not display. Any thoughts why this would be? In your example you have the magic method __get echo "Asked for" . $name . ""; If I do this and call the get method it returns the name, but does not print the echo line (ex. Asked for sound).
Irakli Khakhviashvili speed is fine. This is the best thing about Derek Banas . He keeps it fast so viewers wont get bored. And you always have a "Replay" Option. Dont want to be a jerk, but all i am saying is Speed is fine. Its perfect!
Hi Derek, I am absolute fan of yours and I think you have the most perfect & impressive voice for these tutorials. I follow your tutorials and just love your explanations. I would be most glad to see a tutorial on php exception handling with their actual implementation in websites.Now while there are many tutorials on that, one from you would be the best. I would particularly like to see how to implement / display an error page that is displayed every time an error occurs and display those errors keeping in mind whether it is running in the design or production mode. Thanks and I really hope you will consider to do this tutorial soon. Thank you.
He's a genius yer man Derek, brill vid, brill tutorial, well worth checking out the links, rewrite the code line by line and try to understand it. One of the best channels on youTube
It was really good again! I'm waiting the continuation with namespaces, EventListener or something :) But I have a question: Why do you use snake case instead of CamleCase? Is there any reason or habit? IMO the CamelCase more frequent in the PHP.
Hey Derek great tutorial, I had a question regarding the __get and __set magic methods. Is it more desirable to use getter and setter magic methods or define your own custom getters and setters?
Do i need to master PHP before advancing to Object Oriented PHP? because i cant cope with this, i dont think if you're a taking it too fast or if it just me.
Do whatever works for you. The best way to watch my videos is to get the code in the descriptions and then pause your way through the video as you type out and experiment with the code.
I would like to see videos that break down the concept of object programming, so that I could take in one concept at a time in small steps. The first part of this video is easy to understand. When it gets complicated, I can't grasp any of the concepts. It would help to go in depth on every concept, one at a time. Thank you.
Hey Derek, this helped me, thank you so much! :) One request though, could you please show abstract classes in action? And does every method and attribute in an abstract class need the keyword 'abstract' before it?
@Darek. After my first love. this is first time i have this feeling of love you for your video. I just pose video and came here to comment. your video did trick that 4 hours of lynda training could not do. Love your video bro
Awesome video - Thank you for putting it together. I have one question, Something I'm not able to wrap my head around yet is the "this->name" thing. Could you expand on that a bit further? Kind Regards
+AlAndalus Thank you :) When you create a class you need a way of referring to the object. Since the class is made before the object you can't refer to it by name so you refer to it with the default this.
Dear Coach , Have a great long weekend. In a n-tier J2ee architecture how do those tiers exchange information from user to back end ? VERY SORRY for such a silly question. Thanks and God Bless
I'm happy to be able to help :) Yes I've been a programmer for 30 years. I've worked at Apple, in financial services, web development, etc. I currently mainly make shopping carts and mobile apps
You briefly mentioned at the end of this video that you covered wordpress using PHP extensively but I'm unable to find those videos on your playlist. Can you refer to those specific ones? Thanks.
Definition: An object is a software bundle of variables and related methods. Note : Before watching this videos I have wrote the following example hoping I am right. $somevariable = new SomeClass(); // probably the protected variables inside class called attributes? // and here $somevariable is // an object of SomeClass() echo $somevariable - > functionInsideSomeClass(); // functionInsideSomeClass(); have to return something to display
Very Very Usefull Video. I ll rrcomend this video to any programmer i know not yet impementing OOP and even to those about to learn programming . This is a mist see before they start writing their first code
Derek Banas I like you even more that you took the time to respond to me.... I am a new developer that came from a CAD/CAM background.... Crazy eh? Here is something I made as a CAD person, but only for fun..... scontent-a-iad.xx.fbcdn.net/hphotos-xap1/t31.0-8/1400593_10200845606214754_1716709710_o.jpg
Hi, I use this software for long term memorization ruclips.net/video/5urUZUWoTLo/видео.html and these study methods ruclips.net/video/VpqXCeTfe0Y/видео.html I hope they help :)
I'm still struggling with one point. Why do we bother setting properties at the top of the class? I get it when they have a default value assigned but just declaring a property just doesn't make sense to me. If it has no value then it's just as easy to assign a variable inside the method. Can you shed some light on why this is done and why it's good practice? I've searched online for an answer but really haven't found a very good explanation.
+Phillip R Jorgensen (ChicagoPhil) We are modeling real world objects in our classes. Every object has attributes or properties in the real world. We are defining them here. Also we define capabilities or functions that represent those capabilities of a real world object.
+Derek Banas thank you for the quick reply. I understand that idea but I still don't understand the benefit. I'm a thick headed brain dead Irishman. I'm going to watch this video 20 or 30 more times and see if I'm just missing something. I've been playing with Codeigniter and the menu system I'm building has my brain hurting. If there is a clear benefit to defining properties at the top of my class instead of just when I'm going to use the variable. I basically don't use properties unless they have a default value like a table name or something.
If you are interested in OOP I recommend looking into the SOLID principles and listening to uncle bob lectures. This channel also has a great section on design patterns that are a pretty cool thing to fill your developer tool box with ;)
20:00 - Another example of polymorphism is where we're going to be able to define functions that are going to be able to accept classes that extends a specific class or a specific interface I had to write this down man xD
Only one constructor and it's "referenced" by the keyword new... you can reference a parent constructor from within a subclass constructor with parent::__construct().
***** I will be doing a ton of game tutorials soon. I plan on making many of them for as many months as everyone wants. I'll cover coding, art, math, etc. The only thing I'm pretty weak at would be the story.
Nice summary of the basics of OOPHP. Next time: namespaces, auto-loading, package management, reflection classes? In stead of using a switch to detect whether a property exist, you could try using property_exists($this, $name) (php.net/manual/en/function.property-exists.php). This way, you would not need to change the switch statement every time you change/add/delete a property. Making your code more concise and maintainable.
Rotharius Thank you :) Yes I made a judgement call there on whether to use that method or switch. I probably should have shown both. Thank you for the input
I understand why you did it; to keep things simple for newcomers to OOPHP and not scare them off with all these new scary functions. Perhaps some inspiration for a more in-depth tutorial on OOPHP? ;) Anyway, thanks for the video.
after 13 minutes of viewing and writing the code in my editor i get error "Fatal error: Uncaught Error: Cannot access protected property Animal::$name" i change the properties to public and that works successfully confusing as i thought that protected properties are accessible to the extended class
salv236 You must have made a typo when writing the Animal getter method (the one starting with a double underscore in front of it: __get()), because it should work just fine even with a protected property. That's precisely why getters and setters are used for: to get and set properties that are NOT public.
This is actually VERY important, as web development hinges on the request cycle. At the end of a web request EVERYTHING is destroyed. Except what isn't: the db, session, cookies. But anything from the script that generated the request output is destroyed. Key concept, but one that takes a bit to really get.
Note: The oop tutorials are based in real objects with solid examples, the real life in programation is very abstract and most times you have to think strange way, is normal.
Thank you Derek for these great videos! I come from an academic context (astrophysics) where I used C and Fortran daily, and a bit of Python; I am now trying to broaden my programming skills in view of finding a job outside academia. Your tutorials are being really useful for this purpose. I now would like to read a PHP book. I see that you recommend Welling & Thomson. I am keen on buying it, but I am a little worried because I suspect that web development has evolved a lot since 2008. May I ask what are your thoughts concerning this issue? Thanks, Guido
***** You're very welcome :) Actually a great deal has changed in that frameworks are much more commonly used. I think that book is still great for basic understanding of PHP and MySQL though. I tend to use a framework called Laravel now instead of straight PHP.
Derek Banas Thank you for your prompt answer! I will buy the book, then. Now, thanks to you, I am also curious about Laravel :) If I may ask, at what point do you think it is wise to start learning about it? Would you suggest first I develop an extensive experience on PHP?
***** Frameworks are dramatically different. You can see that by looking at my Rails tutorial. They do a great deal of the work for you. It is always best to understand the base language first though.
You refer to object and class as being the same thing witch their not. Isn't that true or am I wrong? In the beginning of the video you refer to Mark being a class than being an object is confusing.
Rockeru03 In the class you define the attributes (called variables) and abilities (called functions) that all objects of that type will have. A class is a blueprint used to create objects.
Learn in One Videos for Every Programming Language
Subscribe to Bookmark them: bit.ly/2FWQZTx
C++ : ruclips.net/video/Rub-JsjMhWY/видео.html
Python : ruclips.net/video/N4mEzFDjqtA/видео.html
Java : ruclips.net/video/n-xAqcBCws4/видео.html
PHP : ruclips.net/video/7TF00hJI78Y/видео.html
MySQL : ruclips.net/video/yPu6qV5byu4/видео.html
JavaScript : ruclips.net/video/fju9ii8YsGs/видео.html
C# : ruclips.net/video/lisiwUZJXqQ/видео.html
HTML5 : ruclips.net/video/kDyJN7qQETA/видео.html
CSS3 : ruclips.net/video/CUxH_rWSI1k/видео.html
JQuery : ruclips.net/video/BWXggB-T1jQ/видео.html
TypeScript : ruclips.net/video/-PR_XqW9JJU/видео.html
ECMAScript : ruclips.net/video/Jakoi0G8lBg/видео.html
Swift : ruclips.net/video/dKaojOZ-az8/видео.html
R : ruclips.net/video/s3FozVfd7q4/видео.html
Haskell : ruclips.net/video/02_H3LjqMr8/видео.html
Handlebars : ruclips.net/video/4HuAnM6b2d8/видео.html
Bootstrap : ruclips.net/video/gqOEoUR5RHg/видео.html
Rust : ruclips.net/video/U1EFgCNLDB8/видео.html
Matlab : ruclips.net/video/NSSTkkKRabI/видео.html
Arduino : ruclips.net/video/QO_Jlz1qpDw/видео.html
Crystal : ruclips.net/video/DxFP-Wjqtsc/видео.html
Emacs : ruclips.net/video/Iagbv974GlQ/видео.html
Clojure : ruclips.net/video/ciGyHkDuPAE/видео.html
Shell : ruclips.net/video/hwrnmQumtPw/видео.html
Perl : ruclips.net/video/WEghIXs8F6c/видео.html
Perl6 : ruclips.net/video/l0zPwhgWTgM/видео.html
Elixir : ruclips.net/video/pBNOavRoNL0/видео.html
D : ruclips.net/video/rwZFTnf9bDU/видео.html
Fortran : ruclips.net/video/__2UgFNYgf8/видео.html
LaTeX : ruclips.net/video/VhmkLrOjLsw/видео.html
F# : ruclips.net/video/c7eNDJN758U/видео.html
Kotlin : ruclips.net/video/H_oGi8uuDpA/видео.html
Erlang : ruclips.net/video/IEhwc2q1zG4/видео.html
Groovy : ruclips.net/video/B98jc8hdu9g/видео.html
Scala : ruclips.net/video/DzFt0YkZo8M/видео.html
Lua : ruclips.net/video/iMacxZQMPXs/видео.html
Ruby : ruclips.net/video/Dji9ALCgfpM/видео.html
Go : ruclips.net/video/CF9S4QZuV30/видео.html
Objective C : ruclips.net/video/5esQqZIJ83g/видео.html
Prolog : ruclips.net/video/SykxWpFwMGs/видео.html
LISP : ruclips.net/video/ymSq4wHrqyU/видео.html
Express : ruclips.net/video/xDCKcNBFsuI/видео.html
Jade : ruclips.net/video/l5AXcXAP4r8/видео.html
Sass : ruclips.net/video/wz3kElLbEHE/видео.html
hi derek i just started learning php and mysq. i have question on php and mysql coding. can i email you the code to you could tell me what i did wrong. I don't know how to fix the error. much appreciated 🙏
You're the first tut video maker I've seen that doesn't take forever to spit the words out, or constantly digress with side-thoughts. You effortlessly compacted an enormous amount of info into this vid, in record time. Thanks Derek I now have an almost complete understanding of classes & objects!
+Phil Smulian Thank you for the compliment :) I do my best to not waste peoples time.
11:00-11:03 best programmer quote of the year. I enjoy your videos though, best i could find on youtube for my tastes, hope you don't quit anytime soon. In general, great work!
I can not stress enough how much this has helped. I am a long time PHP coder who has always had a mental block with classes OOC. This will help greatly in me writing more secure code, using less variables being passed in the URL.
+zewtorious I am very happy that it helped :)
I came from the plain old procedural PHP programming and had been struggling to find a decent tut to make me understand OOP design and this is far the best tut i ever found on the internet. Thank you! Subscribed.
Zirius Ang Dakila Thank you :) I'm very happy that I could help
btw, if I may suggest, can you pursue this series by adding OOP PHP-MySQL tutorial video. I honestly want to know how would OOP design be considered once you will need to have the interaction with database. Should there be a class for all sql query? something like that maybe?
Fantastic! I absolutely love the way you present information and the speed of your videos! Please do NOT change! I understand that those who are not familiar with the terminology will find it difficult to follow, but once you have progressed beyond that stage it can get so tiring and time-consuming to wade through these basics in order to get the real information. Your videos are like a breath of fresh air. Thank you.
Thank you for all the nice compliments :) Don't worry I won't change.
Derek, not only Your tutorials are extremely efficient and professional, but i love the mood You are presenting it all with. Some kind of a funny sarcastic comedy type positive voice that makes it feel as if everything is easier than it seems and so it puts my mind in a way that it is fun to learn and makes me hungry for this knowledge. Thank You so much, i hope You are getting at least something out of these videos, because what You give us is priceless. Big fan and a learner from Lithuania! :)
Been with you since the first week. You are a savage my man Mr. Banas.
Your tuts are to the point and does not waste time with all kinds of rubbish info or slow typing and you don't waste time. Your tut videos are AWESOME, keep up the GREAT work !.
mmb811 Thank you for the nice compliments :)
Watched this again for a review as I get deeper into Wordpress. All of the unsure things of php were already all explained here. Thanks for making such a compact and info-rich videos.
Thank you :) I'm very happy that it helped
Hello Derek.. I just want to personally thank you for creating quality videos about programming and stuff that are relevant to it. This way we can learn from your videos without paying and going to school. Hopefully, we can pay it forward to many people in the future. Thank you very much! :)
Thank you for taking the time to tell me they help :) The goal is always to provide a free education for all
May God bless us all.
Great video! This quick and generalized style of teaching is exactly what works for me. Now I just need one for Doctrine ORM and Symfony.
Happy I could help :) I'll see what I can do about the requests
Thank you so much for this! This is the best, most coherent and comprehensive tutorial on php classes I have been able to find! I finally understand so much more and see possibilities and flexibility where I was once confused. I will be watching more of your tutorials! Thank you!
+Sarah Elizabeth Thank you for the nice compliment :) I'm very happy that it helped.
You are awesome. I thought to subscribe in the middle of this video specifically but guess what I already have your channel subscription. Thank you for such a cool video. It's like easing out pain and putting me in a situation to know more PHP OOP.
Thank you for the nice compliment :) I'm very happy that it helped
Just coming back to my original PHP tutorials I followed a while ago. Thanks Derek for making these videos! I'm now a Web developer and it all started from these videos.
marcus
That's awesome!!! Congratulations on your job :)
I love this video because I already have knowledge of Classes in other programming language, and I just needed a summary of it in PHP. This makes it so easy to compare and translate from one to another. Awesome Video! Thank you!
Thank you very much :) I'm glad it helped
I have been programming in php in a functional style, not OOP. This tutorial really filled in a lot of gaps that I did not understand before. Thank you!!!
You're very welcome :) I'm happy it helped
The thing you do, starting with an visual and simple example of the subject, is what makes this video better than the others. Thank you :-)
+Kristine Helms Thank you very much for the compliment :)
One of the best OOP tutorial I've seen, thanks a lot!
Thank you very much :)
This is why i hate college... these two php videos would take months to learn in school and cost a $hit ton of $$$...
ProgramThis! Thank you :) I'm doing my best to make education available for free.
Derek Banas The world of education is slowly changing for the better... And it's all thanks to people like you and videos like these.
Your Videos are great.... Thank You! May God Bless You!
so true
+Derek Banas that is so noble task. We need more people like you in the world! Keep the good work going! :)
I honestly feel that Derek has helped change the face of the internet. He is teaching and inspiring the developers of today to develop the internet for tomorrow. Bravo.
Thank you for the very nice compliment :) Wow, that was very nice. I hope that I have been able to help. I'm very lucky to be in the position to do this.
with all the programming languages I've learned, I have never really understood how it works and where its needed, but now I do, thanks so much!
Thank you :) I'm very happy it helped
Like any other PHP static variable, static properties may only be initialized using a literal or constant before PHP 5.6; expressions are not allowed. In PHP 5.6 and later, the same rules apply as const expressions: some limited expressions are possible, provided they can be evaluated at compile time.
hmm.... I can't accept calling a static variable with object
This seems like a great video for someone who already has some knowledge about coding and not for beginners... but since I belong to the first group THANKS!!
You're welcome :) Yes it is for people that have experience in programming other languages.
Love it. Compact, concise and complete. Very refreshing and easy to follow.
Hi Derek, I'm glad to say you I'm learning a lot of programming just watching your videos. Thank you very much!
Great video, as a Web Developer I find theres a real lack of quality educational videos online. Keep it up!
Thank you for the compliment :) I do my best
WOW that was a bunch of information in 26 minutes! You are good! I am a beginer so I will need to watch this a couple of times. Thanks for the tutorial, dude!
Thank you very much :) When I promise something in the title I do my best to meet it
I really like your videos, man ! I learnt lots of things in your videos instead of my college course in a short period of time ! Thank you very much for sharing your knowledge !
Mauricio Ferreira Thank you :) I'm very happy that I could help.
I love these one video series so much! this is a fantastic channel!
ProgramThis! Thank you :) Rails are coming next.
For me this was a very good synopsis of PHP OOP. Thanks.
Thank you :) I'm glad you liked it
Thanks, very good overview of what PHP provides for OOD, JIm
+freightuk Thank you :)
I am completely new to JAVA. Your videos are really amazing & BEST IN THE WORLD and they are helping me a lot. Thank you soooo much.
Princess Gohar Thank you for the nice compliment :) You're very welcome
That's what I call - fast paced tutorial.
Derek your videos are the best.
Thank you very much :)
This is great for a procedural programmer like me that needs to work in a OOP environment. Thanks a million. This helped a lot.
Johan Potgieter You're very welcome :)
Love the :-( in the destructor. Its sooo nice
Very very useful tutorial. Someone who haven't know OOP yet should watch this to learn. It's pefect.
+Patryk Wojciechowski Thank you for the very nice compliment :)
Hi Derek! Thanks for all your great tutorials. I was watching this one and following along in my computer. I ran into some differences and wonder what it could be due to. When I have a method in a class with a echo line and then I create the class and then call the method, I don't get the echo showing in my chrome web browser. I can see it is working as I can return something in the method and that will display, but any echo lines I put in the method do not display. Any thoughts why this would be? In your example you have the magic method __get echo "Asked for" . $name . ""; If I do this and call the get method it returns the name, but does not print the echo line (ex. Asked for sound).
Irakli Khakhviashvili speed is fine.
This is the best thing about Derek Banas . He keeps it fast so viewers wont get bored.
And you always have a "Replay" Option.
Dont want to be a jerk, but all i am saying is Speed is fine. Its perfect!
WHY WAS SPOT DESTROYED? RIP SPOT :'(
Poor Spot he died so young :(
T o T
loll
Hi derek.
Whats the real difference between the __get method and the getName() method? Arent they both getters??
Your videos are pure Gold
Thank you :) I try to do my best
Simple, easy to understand, all most power but you need to know are well stated
hi Derek, i cant run my Php file into the webserver. in witch folder may i post my phpproject ??
wissen htdocs
Hi Derek, I am absolute fan of yours and I think you have the most perfect & impressive voice for these tutorials. I follow your tutorials and just love your explanations. I would be most glad to see a tutorial on php exception handling with their actual implementation in websites.Now while there are many tutorials on that, one from you would be the best. I would particularly like to see how to implement / display an error page that is displayed every time an error occurs and display those errors keeping in mind whether it is running in the design or production mode. Thanks and I really hope you will consider to do this tutorial soon. Thank you.
+Ap Seh Thank you for the very nice compliment :) I hope to get back to PHP very soon.
Hi Derek, Thanks for the reply and looking forward to seeing you there soon !
If we are making a website using both javascript and php which one we should create the objects in?
Thanks for this tutorial Derek! It was really useful as a quick review of php for work. Keep up the great work!
Thank you very much :) I'm happy I could help
He's a genius yer man Derek, brill vid, brill tutorial, well worth checking out the links, rewrite the code line by line and try to understand it. One of the best channels on youTube
Thank you for the nice compliment :)
It was really good again! I'm waiting the continuation with namespaces, EventListener or something :)
But I have a question:
Why do you use snake case instead of CamleCase? Is there any reason or habit? IMO the CamelCase more frequent in the PHP.
Árpád Belovai I'm not biased towards any naming conventions. Since I normally consult I use what ever the organization prefers.
Another Amazing Tutorial By Derek Banas!
***** Thank you :) I promised it was coming.
Hey Derek great tutorial,
I had a question regarding the __get and __set magic methods. Is it more desirable to use getter and setter magic methods or define your own custom getters and setters?
Ryan Schurton It depends only on if you must do any special checking on the data or not.
Do i need to master PHP before advancing to Object Oriented PHP?
because i cant cope with this, i dont think if you're a taking it too fast or if it just me.
Do whatever works for you. The best way to watch my videos is to get the code in the descriptions and then pause your way through the video as you type out and experiment with the code.
I would like to see videos that break down the concept of object programming, so that I could take in one concept at a time in small steps. The first part of this video is easy to understand. When it gets complicated, I can't grasp any of the concepts. It would help to go in depth on every concept, one at a time. Thank you.
Hey Derek, this helped me, thank you so much! :)
One request though, could you please show abstract classes in action? And does every method and attribute in an abstract class need the keyword 'abstract' before it?
@Darek. After my first love. this is first time i have this feeling of love you for your video. I just pose video and came here to comment. your video did trick that 4 hours of lynda training could not do. Love your video bro
+Salim Kotadiya Thank you for the kind compliment :) I'm happy that you enjoyed it.
Awesome video - Thank you for putting it together. I have one question, Something I'm not able to wrap my head around yet is the "this->name" thing. Could you expand on that a bit further? Kind Regards
+AlAndalus Thank you :) When you create a class you need a way of referring to the object. Since the class is made before the object you can't refer to it by name so you refer to it with the default this.
I love you! you always keep me way more advanced than my classes !
Thank you :) I'm very happy to be able to help
Dear Coach ,
Have a great long weekend.
In a n-tier J2ee architecture how do those tiers exchange information from user to back end ?
VERY SORRY for such a silly question.
Thanks and God Bless
I just had to sub once I heard Wordpress as that's what I mainly develop for. Thanks a lot Derek, much appreciated.
Thank you :) Most of my sites are WP sites as well
Hey Derek, thanks so much. You know a lot of things, what did you study? Did you have a career as a developer?
I'm happy to be able to help :) Yes I've been a programmer for 30 years. I've worked at Apple, in financial services, web development, etc. I currently mainly make shopping carts and mobile apps
You briefly mentioned at the end of this video that you covered wordpress using PHP extensively but I'm unable to find those videos on your playlist. Can you refer to those specific ones? Thanks.
+Loc Pham I have a ton of Wordpress tutorials on this page www.newthinktank.com/videos/web-programming/wordpress-how-to/
+Derek Banas Thanks. I was searching through your youtube playlist.
Spot sings: "Boww woow wooow Grover is being destroyed". Haha, I have never saw such an evil dog :D #PeaceForGrover
wow, i literally learned php and mySQL in 2 hours :D (since i can program in C and C++ this was everything needed), thak you so much
I'm very happy that I could help :)
knowledgeable. really different way of exhibiting everything in a short time
Definition: An object is a software bundle of variables and related methods.
Note : Before watching this videos I have wrote the following example hoping I am right.
$somevariable = new SomeClass(); // probably the protected variables inside class called attributes?
// and here $somevariable is
// an object of SomeClass()
echo $somevariable - > functionInsideSomeClass(); // functionInsideSomeClass(); have to return something to display
very nice example, solved all my questions. Thank you very much
+Yuchen Zhou Thank you :) I'm glad it helped.
Very Very Usefull Video. I ll rrcomend this video to any programmer i know not yet impementing OOP and even to those about to learn programming . This is a mist see before they start writing their first code
Thank you for the compliment :)
I love this Tutorial. In a way if the person who is watching this already read some info about OOP PHP.
Thank you :) I'm glad it helped
why did you tell something, without showing the way which will be usefulll for????
Very useful refresher. I'd like to see you cover Cakephp too.
+Russell Dicken Thank you :) It is on the list
I love your vids! I love the fact that you pump out a $h!+ load of information in a short period of time....
Thank you soooooo much!
Matt Dixon Thank you :) I did my best to make original videos. I'm glad you like them.
Derek Banas I like you even more that you took the time to respond to me.... I am a new developer that came from a CAD/CAM background.... Crazy eh? Here is something I made as a CAD person, but only for fun.....
scontent-a-iad.xx.fbcdn.net/hphotos-xap1/t31.0-8/1400593_10200845606214754_1716709710_o.jpg
Matt Dixon Nice!
what a great roller coaster of oop tut. to follow this is!
Thank you very much :)
Best tutorial on this I've seen!
Thank you I'm happy it helped :)
Thanx a lot. I have learnt a lot. It's quite easy if you already know another OOP Language.
I'm happy I could help :)
This is a great explanation of OOP in any language! Great video. :)
Scott Allen Thank you :)
Hi derek, How are you able to do almost all the programming languages? any tricks or tips? Please share with us
Hi, I use this software for long term memorization ruclips.net/video/5urUZUWoTLo/видео.html and these study methods ruclips.net/video/VpqXCeTfe0Y/видео.html
I hope they help :)
Well done! Great tutorial: complete, yet condensed.
Eduard Fornés i Català Thank you :)
Instead of:
function __set($attribute, $value)
{
switch ($attribute) {
case type:
$this->type = $value;
break;
case name:
$this->name = $value;
break;
case age:
$this->age = $value;
break;
default:
echo $attribute . " not found ";
}
}
you can do:
function __set($attribute, $value)
{
$this->$attribute = $value;
}
I'm still struggling with one point. Why do we bother setting properties at the top of the class? I get it when they have a default value assigned but just declaring a property just doesn't make sense to me. If it has no value then it's just as easy to assign a variable inside the method. Can you shed some light on why this is done and why it's good practice? I've searched online for an answer but really haven't found a very good explanation.
+Phillip R Jorgensen (ChicagoPhil) We are modeling real world objects in our classes. Every object has attributes or properties in the real world. We are defining them here. Also we define capabilities or functions that represent those capabilities of a real world object.
+Derek Banas thank you for the quick reply. I understand that idea but I still don't understand the benefit. I'm a thick headed brain dead Irishman. I'm going to watch this video 20 or 30 more times and see if I'm just missing something. I've been playing with Codeigniter and the menu system I'm building has my brain hurting. If there is a clear benefit to defining properties at the top of my class instead of just when I'm going to use the variable. I basically don't use properties unless they have a default value like a table name or something.
+Derek Banas I'm getting it. can't believe I was missing this.
is this consider javascript when creating classes inside php scripts or is this an actual php function ???
This is all PHP
ok thank you very much for ur fast response
Am I seeing something? Class constants use "const" and Classless constant use "define" but why?
PHP is weird
If you are interested in OOP I recommend looking into the SOLID principles and listening to uncle bob lectures. This channel also has a great section on design patterns that are a pretty cool thing to fill your developer tool box with ;)
Hey great video! Out of curiosity, do you know any good resources for learning COBOL?,
Get Otter Here Thank you :) Sorry, but I haven't used Cobol for a long time.
Your teaching method is unique and interesting. I loved it 😃😄😃😄😆💐 thanks soo much n keep making these wonderful videos 💐💐
Thank you for the compliment :) I'm happy I could help
Just too good, you really explain to my understanding
Thank you very much :)
20:00 - Another example of polymorphism is
where we're going to be able to define functions
that are going to be able to accept classes
that extends a specific class or a specific interface
I had to write this down man xD
Sorry if I made that to complicated. I try to use normal words most of the time
when i make a constructor, do i have to enter __construct? how do i refer to multiple constructors if yes?
The constructor is called automatically when you create an object. You don't refer to it by name
Derek Banas oh okay. but i have to name it __construct?
wait how do i create an object in that constructor if i can't refer to it by name?
Only one constructor and it's "referenced" by the keyword new... you can reference a parent constructor from within a subclass constructor with parent::__construct().
Derek, Hope you don't mind me asking, are you a professional programmer?
Lonwabo Mnyaiza I have been paid to write programs for the majority of my adult life, so yes :)
***** I will be doing a ton of game tutorials soon. I plan on making many of them for as many months as everyone wants. I'll cover coding, art, math, etc. The only thing I'm pretty weak at would be the story.
Nice summary of the basics of OOPHP. Next time: namespaces, auto-loading, package management, reflection classes?
In stead of using a switch to detect whether a property exist, you could try using property_exists($this, $name) (php.net/manual/en/function.property-exists.php). This way, you would not need to change the switch statement every time you change/add/delete a property. Making your code more concise and maintainable.
Rotharius Thank you :) Yes I made a judgement call there on whether to use that method or switch. I probably should have shown both. Thank you for the input
I understand why you did it; to keep things simple for newcomers to OOPHP and not scare them off with all these new scary functions. Perhaps some inspiration for a more in-depth tutorial on OOPHP? ;)
Anyway, thanks for the video.
after 13 minutes of viewing and writing the code in my editor i get error "Fatal error: Uncaught Error: Cannot access protected property Animal::$name" i change the properties to public and that works successfully confusing as i thought that protected properties are accessible to the extended class
salv236 You must have made a typo when writing the Animal getter method (the one starting with a double underscore in front of it: __get()), because it should work just fine even with a protected property. That's precisely why getters and setters are used for: to get and set properties that are NOT public.
Nice video! Could you recommend me which PHP projects can I create in order to deepen my knowledge in OOP PHP?
Thank you :) Here are a couple www.w3resource.com/php-exercises/php-class-exercises.php
Thank you :)
around minut 15:00, why is the function __destruct run if you don't call it?
This is actually VERY important, as web development hinges on the request cycle.
At the end of a web request EVERYTHING is destroyed. Except what isn't: the db, session, cookies. But anything from the script that generated the request output is destroyed. Key concept, but one that takes a bit to really get.
Note: The oop tutorials are based in real objects with solid examples, the real life in programation is very abstract and most times you have to think strange way, is normal.
Thank you Derek for these great videos! I come from an academic context (astrophysics) where I used C and Fortran daily, and a bit of Python; I am now trying to broaden my programming skills in view of finding a job outside academia. Your tutorials are being really useful for this purpose.
I now would like to read a PHP book. I see that you recommend Welling & Thomson. I am keen on buying it, but I am a little worried because I suspect that web development has evolved a lot since 2008. May I ask what are your thoughts concerning this issue?
Thanks,
Guido
***** You're very welcome :) Actually a great deal has changed in that frameworks are much more commonly used. I think that book is still great for basic understanding of PHP and MySQL though. I tend to use a framework called Laravel now instead of straight PHP.
Derek Banas Thank you for your prompt answer! I will buy the book, then. Now, thanks to you, I am also curious about Laravel :) If I may ask, at what point do you think it is wise to start learning about it? Would you suggest first I develop an extensive experience on PHP?
***** Frameworks are dramatically different. You can see that by looking at my Rails tutorial. They do a great deal of the work for you. It is always best to understand the base language first though.
Thank you for this, im going to chromecast this to my tv and watch it all with a cuppa, cheers
MultiSamster That's cool. Makes me feel almost like a movie star :)
Thanks Derek! Really nice fast track to PHP OOP!
Thank you :)
soo awesome Derek! Thank you :-) Love to see a longer more in-depth version of this? more OOP PHP please?
Imran Ashraf Thank you :) I'll be making PHP framework tutorials very soon. Laravel will come first.
Derek Banas You are awesome :) But sometimes I get confused, so I just have to learn more :)
You refer to object and class as being the same thing witch their not. Isn't that true or am I wrong? In the beginning of the video you refer to Mark being a class than being an object is confusing.
Rockeru03 In the class you define the attributes (called variables) and abilities (called functions) that all objects of that type will have. A class is a blueprint used to create objects.
Thank you. I didn't expect such a quick reply.
Rockeru03 I do my best :)
Hey Derek, Good work!!, I think you're one of the best lessons
Justin Joshua Thank you :) I'm glad you liked it.