Join over 8,700 ⭐⭐⭐⭐⭐ PHP Masterclass students!
Here's What You'll Get
- 41 Hours of Video Content
- 200+ Lectures
- Learn Laravel, WordPress, PHP, Vue.js and more!
- Learn Clean Coding with SOLID, DRY, and YAGNI
- Keep your code secure
- Q&A Discussion Forum
- Direct access to Rick, the 17-year PHP veteran
- Learn how to make 6-figures on Upwork
- Set your own hours
- Work from home, the beach, or wherever you'd like
- Lifetime updates
- Free code for life (Just write it into existence!)
- Freedom to travel, spend time with your friends and family, pets, or do whatever you'd like
- Acquire high-paying thousand-dollar contracts with top clients
- Build your business or product idea
- Love
This Video Will Blow Your Mind!
Continuously Updated
This course is a living, breathing, course continuously updated whenever new significant versions of PHP get release, whether that's PHP 7.0 to 7.1, of PHP 7.x to PHP 8.x, I'll be sure you have the latest information as quickly as possible in new videos.
Clean Code
Learn the difference in coding standards that makes the difference between a PHP artisan, and someone who's self-taught and spends years in the dark. (HINT: SOLID, DRY, YAGNI! You'll learn what they mean and why they're important, and also why your code should comment itself.)
7 Bonuses
Has several micro-courses to help you grow in ways that matter, potentially putting you six-figures or more in profit!
Bread and Butter PHP
What about the main course? (Hint: it's not a dinner roll! :) ) Learn everything from variables and data types, to functions, classes, namespaces, traits, and a whole lot more.
Course Project: Online Freelance Marketplace
During the course, we will learn how to build a basic online freelance marketplace in Laravel 7. Rick spent 2 years of his life building a very elaborate online freelance marketplace, and he'll distill his knowledge down into the basics so we can fit it into a course project. You'll also hear about numerous other options you could use to expand the marketplace into your own awesome creation, while reinforcing your knowledge in PHP.
What's an online freelance marketplace? Simple. It's a place where vendors and shoppers meet each other and transact service-based business. An example of some of them are Upwork, Freelancer, and Fiverr.
What else will you learn?
My secrets as a six-figure Upwork freelancer
PHP has the uncanny double standard of being EXTREMELY popular on online freelance marketplaces, such as Upwork, but almost non-existent in traditional jobs. If you're looking to work for yourself, learn PHP and go freelance. If you'd prefer to work for the man, try Node.js, Python, Java, or another language popular for that career path. I'll show you how to succeed as a six-figure freelancer on Upwork.
You'll also learn the various caveats of each of the major online freelance marketplaces, such as Fiverr, Freelancer.com, and Upwork, so that you can make your own decisions on where to start your journey as a freelancer.
SOLID, DRY, YAGNI
...and other tips that'll make you a PHP artisan instead of just someone writing code.
- S — Single responsibility principle
- O — Open/closed principle
- L — Liskov substitution principle
- I — Interface segregation principle
- D — Dependency inversion principle
- DRY — Don't Repeat Yourself!
- YAGNI - You Aren't Gonna Need It!
WordPress and WooCommerce
WordPress powers 35% of the entire internet at the time of writing this in February 2020. Just a couple months ago, it powered 34%! That's a massive market share, and it's no surprise that Upwork is filled to the brim with WordPress and WooCommerce projects. During this course we'll build the following WordPress plugins from scratch, while keeping our codebase FAR cleaner than most WordPress plugins, or even WordPress core itself.
- Custom WooCommerce Thank-You Page - Create a custom thank-you page for your WooCommerce installation on WordPress.
- Featured Products Widget - Build a widget to display an admin-defined list of posts on your sidebar, footer, or anywhere else your theme supports widgets!
Laravel
Laravel is the most popular PHP framework at the time of writing, and we'll learn how to build software in laravel. You'll learn the components that make up the framework, such as model, views, controller, the Artisan CLI and more. You'll also get hands-on training in Laravel Spark and Laravel Nova not taught in other courses in PHP and Laravel!
Vue.js
Learn the very basics of using Vue.js to build your frontend. As we'll be using Laravel, Vue.js will come up somewhat often when working with their products, and you should be able to hit the ground running with Vue.js.
Course Curriculum
- How to Use This Section
- [Win/Mac] Installing Dev Environment on Windows and Mac (28:50)
- [Win/Mac] MySQL Root Password (Option 1)
- [Win/Mac] MySQL Root Password and Workbench (Option 2) (10:00)
- [Win/Mac/Linux] MySQL Root Password Grant
- [Linux] Installing Dev Environment on Linux (11:26)
- Configuring Apache with a Local Test Website (15:48)
- Installing Eclipse PDT (8:19)
- Coding Standards (4:07)
- Hello World (6:18)
- Printing Text in the Console (4:43)
- Variables and Data Types (15:53)
- Code Completion in Eclipse
- Four Types of Strings in PHP (15:10)
- String Interpolation (6:01)
- Tabs, New Lines, and the Escape Character (9:57)
- PHP is Loosely Typed (8:25)
- Operators (8:23)
- Indexing Into Strings (8:31)
- String Concatenation (10:14)
- Mid-Section Challenge
- Mid-Section Challenge Solution
- Not Defining a Value Versus Null (6:57)
- Two Types of Arrays (21:18)
- The Difference Between echo, print_r, and var_dump (9:45)
- in_array, array_key_exists empty, isset, array_slice (21:26)
- Gotcha with isset and empty (9:24)
- Section Challenge: Copy Words in a Sentence into an Array (2:22)
- Solution: Word Array (6:23)
- Running Hello World in Your Browser (4:30)
- True, False, Truthy, Falsey (8:30)
- Control Structures with if / elseif / else (15:10)
- Switch (13:10)
- Ternary Statements (6:27)
- Handling Form Submissions - Introduction to Superglobals (14:15)
- $_REQUEST, $_GET, and $_POST Superglobals (6:39)
- Mid-Section Challenge
- Solution to Mid-Section Challenge
- $_SERVER (7:35)
- Handling a File Upload (8:07)
- Number Guessing Game and rand (9:20)
- Security Concerns with $_GET (9:23)
- Using $_COOKIE to Store the Number (6:21)
- Security Concerns with Cookies (2:52)
- Using Sessions to Make It More Challenging (21:49)
- Section Challenge: Submit a Form - Set Cookie When Valid (2:48)
- Solution: Server Side Validation (13:24)
- For loop (8:49)
- Printing All Values in an Array (5:32)
- I++, J++... C++? (8:23)
- Nested For Loop (5:27)
- Printing Times Tables (6:00)
- Mid-Section Challenge
- Continue and Break (8:22)
- The Foreach Loop (5:04)
- The While Loop (6:34)
- The Do / While Loop (3:58)
- Augmented Assignment (8:25)
- Section Challenge: Implement Binary Search (2:44)
- Solution: Implement Binary Search (16:00)
- Writing data to a file using file_put_contents (12:59)
- Reading the Contents of a File with file_get_contents (6:35)
- The eval() Function is EVIL! (9:20)
- Serialize / Unserialize (Hint: Also Evil!) (12:10)
- Writing Functions in PHP (22:59)
- Mid-Section Challenge
- Solution to Mid-Section Challenge
- Anonymous / Lambda Functions (12:25)
- Recursion (10:22)
- Mutual Recursion (7:41)
- Generators (6:10)
- Gathering Input From the Console (8:21)
- Creating a Phar (PHP Archive) File (19:24)
- Section Challenge: Implement a Recursive Factorial Function (0:46)
- Solution: Recursive Factorial (9:07)
- Classes in PHP (5:04)
- Static Methods (5:39)
- Static Properties (7:58)
- The __construct Method (8:55)
- Dynamic Methods (3:16)
- Dynamic Properties and the $this keyword (6:41)
- Including a file Versus Require (8:35)
- Namespaces (7:19)
- spl_autoload_register (25:44)
- Interfaces (32:32)
- Abstract Classes and Extending a Class (Inheritance) (25:26)
- Traits (11:57)
- Error Handling With Try / Catch / Finally (27:48)
- Challenge: Build a Toaster Class (1:18)
- Solution: Toaster (11:40)
- Hardening the Toaster with Type Hints (4:03)
- Class Scopes: Public vs Protected vs Private Scopes (16:08)
- $this Versus Self (6:28)
- Get Composer (1:51)
- Installing Guzzle, and The "vendor" Directory and Autoloading (18:43)
- Guzzle Google (10:31)
- UPDATE: Important Information About the Section Challenge
- Section Challenge: Driver Backbone (6:48)
- Solution: Driver Backbone (21:11)
- The time Function and Unix Timestamps (1:52)
- Date and time formats with the date Function (5:14)
- The DateTime Class (8:37)
- Adding and Subtracting Dates (10:22)
- How Carbon Makes Time Travel Possible... with Ease! (13:10)
- Section Challenge: Print Your Birthday Using All Three (0:47)
- Solution: Birthday Printing (12:20)
- SQL Primer: MySQL Workbench (1:45)
- Creating a Database Schema in MySQL Workbench (7:13)
- PHP PDO and Connecting to Our New Database (10:02)
- SQL Primer: INSERT (7:28)
- Raw SQL INSERT using PHP PDO (4:14)
- SQL Primer: SELECT (10:58)
- Raw SQL SELECT (4:49)
- SQL Primer: UPDATE (3:23)
- Raw SQL UPDATE (4:23)
- SQL Primer: DELETE (11:20)
- Raw SQL DELETE (2:19)
- SQL Injections with Robert') DROP TABLES Students;-- (8:22)
- Prepared Statements in PHP PDO (7:44)
- Section Challenge: Rewrite All Queries to Use Prepared Statements (1:18)
- Solution: Well Prepared (12:51)
- SOLID, DRY, YAGNI - What Are They? Why Should I Care? (7:54)
- S - Single Responsibility Principle (13:36)
- O - Open-Closed Principle (16:06)
- L - Liskov Substitution Principle (9:52)
- I - Interface Segregation Principle (11:41)
- D - Dependency Inversion Principle (12:09)
- DRY - Don't Repeat Yourself! (16:23)
- YAGNI - You Aren't Gonna Need It! (6:38)
- IMPORTANT Update
- Introduction (14:11)
- Why Upwork? (20:36)
- Drawbacks of Upwork (18:06)
- Benefits / Drawbacks of Fiverr (12:08)
- Benefits / Drawbacks of Freelancer.com (16:42)
- Building an Awesome Profile (53:08)
- Finding Upwork Projects (51:15)
- Discovery (Sales) Meetings (16:56)
- How Long Does It Take to Get a Project on Upwork? (3:57)
- Installing WordPress (10:31)
- Hello World Plugin (16:44)
- Installing WooCommerce with Demo Products (11:20)
- WordPress Hooks (10:58)
- add_action Versus add_filter (14:28)
- Custom WooCommerce "Thank You" Page (14:32)
- Challenge: Read The WC Docs for WC_Order - Print Purchased Products (0:36)
- Solution: Print Purchased Products (2:50)
- Deploying a Plugin (1:10)
- Challenge: Create the Starting Point (1:13)
- Solution: Widget Starting Point (1:48)
- Challenge: Implement spl_autoload_register (1:01)
- Solution: spl_autoload_register (11:25)
- Installing Laravel's Eloquent ORM (18:56)
- Building our Post Model (7:33)
- How Eloquent ORM Knows the Table Name
- Integrating Our Widget (15:02)
- Retrieve the Latest 3 Products (16:30)
- Admin Options to Choose the Number of Products (35:07)
- Model where and wherein methods (3:53)
- Section Challenge: Admin Settings Supply Product IDs (2:10)
- Solution: Admin Settings for Widget (14:53)
- Node.js
- Installing Laravel (19:14)
- Folder Architecture (17:19)
- Hello World of Laravel (17:03)
- Migrations (8:35)
- Controllers (21:27)
- Views (17:19)
- Intro to the Blade Template Engine (15:33)
- Installing Auth Components (19:36)
- Models (16:12)
- Authorization System (34:26)
- MVC Design Pattern (10:21)
- The Auth Facade (7:14)
- Service Providers (2:53)
- Dependency Injection or Facade (10:12)
- Artisan (25:26)
- BONUS: Laravel Spark (32:48)
- BONUS: Laravel Nova (25:58)
- Section Challenge: Build a Basic Dashboard Page for Logged in Users (4:07)
- Solution: Dashboard (4:06)
- Project Setup
- Project Briefing and Agile Trello Project Board (9:45)
- Intro to PHPUnit and Unit Testing (19:42)
- Intro to TDD (Test Driven Development) (10:18)
- Build a Page to add a New Project (49:21)
- Finishing the Project Creation Page (17:29)
- Making the Project Active (47:27)
- Viewing the Project (14:10)
- Updating a Project (10:21)
- Deleting a Project (8:49)
- Build the Project Listing Page (19:29)
- Algolia Account (5:10)
- Laravel Scout (63:05)
- Accept a Project (25:58)
- List Projects We Have Accepted (11:26)
- End the project (9:29)
- Potential Upgrades to Your Marketplace (4:52)
- GitHub (16:49)
- Travis CI (17:17)
- cPanel and Shared Hosting Versus WordPress Hosting (14:40)
- Section Challenge: Add Skills to the Project Entry and View Pages (0:57)
- Solution: Skills (16:36)
- BONUS: Email Verification (7:29)
- BONUS: Send the Client an Email When Project is Accepted (17:26)
Course Reviews
Reviews from Upwork Clients
30-Day Money-Back Guarantee
Cancel Any Time
You shouldn't have to worry if you'll learn something new, or if good 'ol Rick is faffing about with your wallet! :) That's why we give you a full 30 days to request a full refund if you're not satisfied.
Yes, you can get your money back, but keep in mind that you'll not just lose access to the course material, but also the opportunity to grow by discussing your questions with your instructor and other students. For the price of a nice dinner out each month, you can improve your life in immeasurable ways.
There's absolutely zero risk in grabbing this course today. We tend to experiment with pricing from time to time, so if we're seeing lots of sales at a given price, we might increase it by $5 or so to see if we can still see great sales volume. So, get started right now so you lock in the current price. (Psst... we're thinking about increasing this course by about $50 next week. Ouch! Don't miss out. Grab it now.)
Howdy! Meet your instructor.
Rick Mac Gillis has 17 years of experience as a software engineer, and began his career using PHP and MySQL in 2003. Since then he has gone on to become a published author on various topics in the software industry, build successful tech startups, receive transformative training from Robert C. Martin (founder of the modern Agile movement), and now seeks to pass his knowledge onto you!