Example Curriculum
Available in
days
days
after you enroll
Available in
days
days
after you enroll
- The PHP Interpreter (5:44)
- Running a PHP Script (6:44)
- PHP Tags (3:44)
- The echo Keyword (5:57)
- Comments (2:07)
- Variables (5:20)
- Assignment Operator (4:11)
- Data Types (4:35)
- The var_dump Function (3:10)
- Null Data Type (3:22)
- Boolean Data Type (2:28)
- Integers and Floats (3:43)
- String Data Type (6:41)
- Exercise: Data Type
- Arrays (4:44)
- Associative Arrays (3:31)
- Multidimensional Arrays (3:38)
- Type Casting (7:51)
- Type Juggling (2:24)
- Arithmetic Operators (6:22)
- Assignment Operators (2:26)
- Comparison Operators (5:41)
- Error Control Operator (1:33)
- Incrementing and Decrementing Numbers (2:53)
- Logical Operators (4:27)
- Operator Precedence (5:39)
- Constants (4:57)
- String Concatenation (3:27)
- Let's Have Some Fun (+ More Resources)
Available in
days
days
after you enroll
- Terminology: Expressions (2:54)
- Control Structures (8:37)
- Switch Statements (6:06)
- Match Expressions (4:31)
- Functions (4:55)
- Function Parameters (4:09)
- Function Return Values (2:24)
- Type Hinting & Union Types (4:18)
- Strict Types (2:40)
- Short-Circuiting (2:52)
- While Loop (4:57)
- For Loop (4:40)
- Foreach Loop (2:58)
- Unlimited Updates
Available in
days
days
after you enroll
Available in
days
days
after you enroll
- Predefined Constants (5:30)
- Alternative Syntax for Constants (4:44)
- Unsetting Variables (4:35)
- Reading the PHP Documentation (6:28)
- Rounding Numbers (7:34)
- Alternative if statement syntax (5:10)
- Avoiding Functions in Conditions (6:35)
- Including PHP Files (10:05)
- Variadic Functions (4:28)
- Named Arguments (3:00)
- Global Variables (4:40)
- Static Variables (2:17)
- Anonymous and Arrow Functions (8:58)
- Callable Type (2:17)
- Passing by Reference (4:41)
- Array Functions (13:15)
- Destructuring Arrays (2:21)
- Working with Files (8:02)
- Course Check-In
Available in
days
days
after you enroll
Available in
days
days
after you enroll
- What is OOP (Object-Oriented Programming)? (4:51)
- Classes (5:53)
- Properties (5:47)
- Magic Methods (5:27)
- Constructor Property Promotion (1:59)
- Custom Methods (3:56)
- Null-safe Operator (2:23)
- Understanding Namespaces (2:50)
- Creating a Namespace (3:47)
- Working with Namespaces (9:50)
- Autoloading Classes (6:06)
- Using Constants in Classes (2:15)
- Static Properties and Methods (5:44)
- OOP Principle: Encapsulation (7:46)
- OOP Principle: Abstraction (2:35)
- OOP Principle: Inheritance (5:46)
- Protected Modifier (2:00)
- Overriding Methods (9:13)
- Abstract Classes and Methods (9:38)
- Interfaces (5:07)
- OOP Principle: Polymorphism (7:23)
- Anonymous Classes (3:54)
- Docblocks (5:53)
- Throwing Exceptions (6:56)
- Custom Exceptions (3:55)
- Catching Exceptions (5:34)
- The DateTime Class (11:34)
- Iterator and Iterable Type (12:20)
Available in
days
days
after you enroll
Available in
days
days
after you enroll
- Project Overview (4:52)
- Text Editors (3:56)
- Understanding the LAMP stack (5:40)
- Exploring XAMPP (2:42)
- The htdocs Folder (5:27)
- Configuring Virtual Hosts in Apache (11:19)
- Configuring PHP (4:37)
- Creating an Application Class (4:18)
- Bootstrapping an Application (4:25)
- The Command Line (6:56)
- Understanding PSR (3:09)
- Installing Composer (7:08)
- JSON Crash Course (5:05)
- Initializing Composer (7:13)
- Generating Autoload Files (3:15)
- Including Autoload Files (2:25)
- What is Git? (2:39)
- Using GitHub (6:17)
- Exploring Git Files (5:54)
- Exercise: Imposter Syndrome (2:55)
Available in
days
days
after you enroll
- Understanding Routing (3:57)
- Apache Mod Rewrite (7:27)
- The htaccess File (6:15)
- Sugar Functions (2:56)
- Creating a Router Class (2:32)
- Adding Routes (4:56)
- Understanding HTTP Methods (5:01)
- Supporting HTTP Methods in Routes (2:29)
- Normalizing Paths (3:35)
- Exploring Regular Expressions (7:09)
- Regular Expressions in PHP (3:06)
- MVC Design Pattern (6:25)
- Creating a Controller (1:56)
- Registering Controllers (2:52)
- Class Magic Constant (2:45)
- Dispatching a Route (4:39)
- Finding Matches with Regular Expressions (4:28)
- Instantiating Classes with Strings (2:58)
- PSR-12 Auto Formatting (5:15)
Available in
days
days
after you enroll
- Understanding Template Engines (2:40)
- Creating a Template Engine Class (2:08)
- Setting a Base Path (4:29)
- Rendering a Template (3:00)
- Extracting Arrays (3:56)
- Understanding Output Buffering (4:34)
- Creating an Output Buffer (2:50)
- Loading Assets (3:25)
- Adding Partials (4:14)
- Exercise: Creating an About Page (4:47)
- Escaping Data (7:30)
- Autoloading Functions (4:57)
Available in
days
days
after you enroll
- Understanding Dependency Injection (3:32)
- Creating a Container (2:34)
- External Definitions File (4:40)
- Factory Design Pattern (4:09)
- Merging Arrays (2:20)
- Reflective Programming (6:56)
- Validating Classes (3:33)
- Validating the Constructor Method (2:28)
- Retrieving the Constructor Parameters (2:24)
- Validating Parameters (6:38)
- Invoking Factory Functions (4:42)
- Instantiating a Class with Dependencies (3:36)
- Understanding Middleware (3:11)
- Supporting Router Middleware (2:37)
- Adding Middleware (2:27)
- Creating Middleware (1:52)
- Interface Contracts (4:02)
- Chaining Callback Functions (4:06)
- Looping through Middleware (3:09)
- Supporting Dependency Injection in Middleware (2:14)
- Global Template Variables (3:06)
- Singleton Pattern (7:33)
Available in
days
days
after you enroll
- Preparing the Registration Form (4:55)
- Configuring the Form (6:51)
- Handling POST Data (3:02)
- Understanding Services (4:16)
- Creating a Validator Class (5:38)
- Validation Rule Contract (5:42)
- Registering a Rule (4:25)
- Applying Rules to Fields (7:57)
- Storing Validation Errors (3:05)
- Custom Validation Exception (5:57)
- HTTP Status Codes (4:59)
- Custom Middleware (3:48)
- Redirection with Headers (6:25)
- Passing on the Errors (3:18)
- HTTP Referrer (2:48)
- Understanding Sessions (2:23)
- Enabling Sessions (4:20)
- Handling Session Exceptions (4:03)
- Common Session Error (6:16)
- Closing the Session Early (1:05)
- Injecting Errors into a Template (5:12)
- Flashing Errors (1:57)
- Displaying Errors (3:00)
- Validating Emails (4:38)
- Supporting Rule Parameters (5:38)
- Minimum Validation Rule (3:51)
- In Validation Rule (3:30)
- Exercise: URL Validation Rule (2:57)
- Password Matching Rule (3:45)
- Prefilling a Form (6:01)
- Filtering Sensitive Data (3:49)
Available in
days
days
after you enroll
- Introduction to SQL (5:29)
- Creating a Database (2:31)
- Creating Tables (9:12)
- Inserting Data (4:05)
- Reading Data (3:41)
- Updating Data (1:56)
- Deleting Data (2:18)
- Using PHPMyAdmin (7:44)
- Enabling PDO Extension (4:27)
- Custom Composer Scripts (3:46)
- Understanding DSN (1:44)
- Creating a DSN String (6:04)
- Connecting to a Database (3:00)
- The PDOException Class (3:42)
- Refactoring the Database Connection (5:13)
- Querying the Database (4:30)
- Fetch Modes (4:09)
- SQL Injections (5:27)
- Prepared Statements (5:46)
- Understanding Transactions (3:08)
- Creating Transactions with PDO (4:18)
- Understanding Data Modeling (3:57)
- Designing a User Table (10:10)
- Creating a Table in an SQL File (6:07)
- Loading Files (2:24)
- Conditionally Creating Tables (2:08)
- Refactoring the Query (2:24)
Available in
days
days
after you enroll
- Database Container Definition (1:32)
- Understanding Environment Variables (5:37)
- Exercise: Updating the CLI to use Environment Variables
- Creating Environment Variables (5:21)
- Ignoring Environment Files (1:58)
- Passing on the Container to Definitions (4:31)
- Counting Records with SQL (2:53)
- Supporting Prepared Statements (2:06)
- Validating Duplicate Emails (4:44)
- Exercise: Inserting a User (4:19)
- Understanding Hashing (5:32)
- Hashing a Password (5:29)
- Preparing the Login Page (2:51)
- Exercise: Validating the Login Form (7:00)
- Validating the User’s Credentials (9:45)
- Understanding Session Hijacking (3:18)
- Configuring Session Cookies (6:25)
- Regenerating a Session ID (1:51)
- Protecting Routes (3:47)
- Applying Route Middleware (7:00)
- Logging out of the Application (2:55)
- Authenticating Registered Users (2:43)
- Understanding CSRF (2:07)
- Generating a CSRF Token (4:29)
- Rendering Tokens (3:10)
- Validating CSRF Tokens (7:11)
- Conditionally Rendering Sections (1:54)
Available in
days
days
after you enroll
- Designing the Transactions Table (3:42)
- Understanding Database Relationships (5:47)
- Adding Foreign Keys (6:33)
- Preparing the Create Transaction Page (4:10)
- Validating Transactions (3:53)
- Validating Maximum Character Length (4:28)
- Validating Numbers (2:41)
- Validating Dates (4:51)
- Creating a Transaction (7:04)
- Retrieving Transactions (6:08)
- Formatting Dates with SQL (3:30)
- Query Parameters (5:48)
- SQL LIKE Clause (3:10)
- Filtering Transactions (1:35)
- Escaping the Search Term (1:58)
- SQL Limit Clause (2:30)
- Limiting Results (5:08)
- Previous Page Link (4:20)
- Next Page Link (5:56)
- Page Number Links (7:08)
- Preparing the Edit Route (6:02)
- Replacing Strings with Regular Expressions (6:17)
- Extracting Route Parameter Values (6:50)
- Edit Transaction Template (7:15)
- Updating a Transaction (6:51)
- Overriding HTTP Methods (5:55)
- Deleting a Transaction (3:20)
Available in
days
days
after you enroll
- Preparing the Receipt Controller (3:57)
- Encoding File Data (2:39)
- Exercise: Creating a Receipt Service (6:25)
- Validating a File Upload (3:36)
- Validating File Sizes (2:51)
- Validating Filenames (3:43)
- Validating File Mime Types (3:50)
- Generating a Random Filename (3:36)
- Moving Uploaded Files (4:53)
- Designing the Receipts Table (4:56)
- Storing the Receipt (3:00)
- Displaying Receipts (7:44)
- Validating the Download Request (4:13)
- Downloading Files (6:31)
- Deleting a Receipt (4:34)
Available in
days
days
after you enroll
Available in
days
days
after you enroll
Available in
days
days
after you enroll