Which PHP and/or Laravel YouTube channels do you watch?
What is the best way to start learning PHP?
Learn the language first, not a framework or a CMS.
Below is a basic outline of what you'll need to know. Use this as a guide to help you find the information you need. Sorry for not posting any actual resources, but you can consider this a basic syllabus.
Basics
Like anything. Walk before you run. There is a LOT to the "basics" of any language, but these four are where you will derive most value out of PHP. Practice these things until you can do them in your sleep.
-
The syntax (variables, arrays, if/else, loops, objects, interfaces etc)
-
Doing stuff with $_GET and $_POST variables, and generally understanding how a request & response in PHP works.
-
How to perform SQL queries with PDO (don't bother learning mysql_, as it's deprecated. Also recommend avoiding mysqli_, as its a dated procedural way to code)
-
How to work with sessions & cookies
Security
Key security concepts to understand when building a PHP application. This is NOT a complete list, but it accounts for most of the vulnerability points an application can make. This is after the basics because it's that important - knowing this stuff is simply not optional.
-
Cross Site Request Forgery protection (CSRF)
-
Filtering input to prevent malicious code execution
-
Filtering input and using PDO prepared statements to stop SQL injection
-
Escaping output to mitigate Cross Site Scripting vulnerabilities (XSS)
-
How to hash and store passwords (php 5.5 made this a lot easier)
-
How to safely upload images & files
-
Configuring your environment for maximum error checking
Object Oriented Design
Once you're comfortable with the basics & security, you should start thinking in terms of objects, and read up on/practice the following concepts. Like the above, do these until they're second nature.
-
S.O.L.I.D. principles - S is the most important.
-
Programming to an interface
-
Favoring composition over inheritance
-
Dependency injection
-
Namespaces
-
Exceptions (not technically part of OO Design, but it's a bit too advanced
Application Architecture
This refers to how you would structure an application from top to bottom.
-
MVC pattern (and in general, layered architecture)
-
Basic understanding of what is meant by a domain and Domain Driven Design (this is a big topic, but you should at least understand the basics)
-
Using an Inversion of Control container for managing dependency injection (start with Pimple, then checkout Laravel's IoC)
-
Autoloading & using composer to manage external libraries and dependencies
-
Various design patterns
-
Unit testing
Frameworks
Knowing all of the above will help you take greater advantage of (and better appreciate) frameworks. It's easy to do a very bad job using a good framework if you don't quite understand the sections above. Frameworks aren't magic bullets - they require prior knowledge to be used effectively.
There are many frameworks to choose from. The most popular full featured frameworks are Laravel and Symfony, but you should dabble in a wide variety of them to get a sense for how they solve common problems.
There are many more nooks and crannies in PHP than what I've outlined above, but that should be enough to get you started. The key to all of the above is practice and tinkering.
Edit: thanks for the gold kind developer!
More on reddit.comRecommended: The Best Youtube Channels for Developers
Thoughts on TechLead's (Youtuber) tutorial? My opinion: Horrible, deprecated libraries, bad coding practices. Extremely disappointing for an ex-google ex-facebook engineer.
How can Hackr.io help you find the best PHP Tutorials?
How to learn PHP?
How to learn PHP quickly?
Videos
Do any of you have any favourite YouTube channels for PHP, Laravel or even web development in general?
I've been searching around and looking at what's out there, but the YouTube search is terrible, because there are hundreds of just click baity videos "Should I learn PHP?", etc, etc.
Who would you recommend, and why?