Autoplay
Autocomplete
HTML5
Flash
Player
Speed
Previous Lecture
Complete and continue
The Complete PHP Masterclass - Go from Beginner to Artisan
Course Introduction
Course Introduction (1:11)
Install and Setup
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)
BOOT CAMP - The Basics
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)
BOOT CAMP - It's Browser Time!
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)
BOOT CAMP - Loops
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)
BOOT CAMP - Functions and File I/O
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)
BOOT CAMP - OOP and 3rd-Party Software
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)
BOOT CAMP - Time Traveling with DateTime and Carbon
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)
BOOT CAMP - Databases - PHP PDO and MySQL
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)
SOFTWARE PRINCIPLES - SOLID, DRY, YAGNI
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)
SOFTWARE PRINCIPLES - Extras
Asymptotic Notation (26:33)
Your Code Should Comment Itself (23:28)
BONUS 1 - Six-Figure Upwork Freelancer
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)
WORDPRESS PROJECT 1 - Custom WooCommerce "Thank You" Page
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)
WORDPRESS PROJECT 2 - WordPress Widget
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)
LARAVEL BOOT CAMP - Laravel 7
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)
LARAVEL BOOT CAMP - Vue.js Primer
Installing Vue.js (14:18)
Vue.js Hello World (23:07)
Dashboard Greeter (4:38)
Settings Page (18:55)
Section Challenge: Add a Field to Save Your List of Skills (0:59)
Solution: Skills Setting (2:14)
LARAVEL PROJECT - Build an Online Freelance Marketplace
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)
PHP Version Differences
PHP 5 Versus PHP 7 (27:34)
New in PHP 7.1 (7:54)
New in PHP 7.2 (4:05)
New in PHP 7.3 (4:46)
New in PHP 7.4 (16:05)
Extras
PHP Cheat Sheet
Certificate of Completion
Generators
Lecture content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock