💼 PHP Intermediate — Full Course Outline
Module 1: Course Overview & Review of Fundamentals
What You Should Already Know (Variables, Functions, Forms, MySQL)
Setting Up a Professional PHP Environment
Using Composer
Working with VS Code and PHP extensions
Folder Structure and Project Organization
Introduction to PHP 8+ Features (Arrow Functions, Named Arguments, Union Types)
Module 2: Working with Forms and Data Handling (Advanced)
Deep Dive into $_POST and $_GET
Handling Multiple Forms on a Single Page
File Uploads (Single & Multiple Files)
Secure Input Validation and Sanitization
Working with CSRF Tokens for Form Security
Module 3: Advanced Functions and Code Reuse
Anonymous Functions and Closures
Callback Functions
Variable Functions
Recursion in PHP
Understanding the use Keyword with Closures
Namespaces and Modular Programming
Module 4: Object-Oriented Programming (OOP) in PHP
Introduction to Classes and Objects
Properties, Methods, and Constructors
Access Modifiers (public, private, protected)
Getters and Setters
Inheritance and the parent Keyword
Abstract Classes and Interfaces
Traits and Code Reuse
Static Properties and Methods
Autoloading Classes (PSR-4 Standards)
Magic Methods (__get, __set, __construct, __toString, etc.)
Module 5: Working with Databases (PDO and MySQLi)
Why Use PDO Instead of MySQLi
Connecting to Databases Securely
Prepared Statements and Parameter Binding
Fetching and Displaying Data
Handling Exceptions in Database Queries
CRUD Operations with PDO
Database Connection Best Practices
Error Handling and Logging
Module 6: Sessions, Cookies, and Authentication (Advanced)
Deep Dive into Sessions and Cookies
Secure Session Management
Session Hijacking and Fixation Prevention
Building a Custom Login/Logout System
Password Hashing and Verification (password_hash, password_verify)
Remember Me Functionality
Role-Based Access Control (RBAC)
Module 7: Working with Files and Directories
File System Functions (scandir, file_exists, etc.)
Reading and Writing Files Efficiently
Handling CSV and JSON Files
File Permissions and Ownership
Building a Simple File Manager App
Module 8: Error Handling, Exceptions, and Logging
Using try, catch, and finally Properly
Creating Custom Exception Classes
Using Error Reporting Levels
Logging Errors to Files or Databases
Displaying User-friendly Error Pages
Handling Fatal Errors Gracefully
Module 9: PHP and APIs
What is an API?
Working with REST APIs Using file_get_contents() and cURL
Sending GET and POST Requests with cURL
Handling JSON Data (json_encode, json_decode)
Creating Your Own Simple REST API in PHP
Using Headers and HTTP Status Codes
Module 10: Advanced Array and String Operations
Associative and Multidimensional Arrays (Advanced Manipulation)
Using Array Functions Efficiently (array_map, array_reduce, etc.)
String Formatting and Regular Expressions (Regex Basics)
Splitting, Searching, and Replacing Text Patterns
Parsing and Generating JSON or XML
Module 11: PHP Design Patterns (Introduction)
Why Use Design Patterns
Understanding MVC Architecture
Singleton Pattern
Factory Pattern
Observer Pattern (Intro)
Dependency Injection (Basic Concept)
Module 12: Security Best Practices
Input Sanitization and Validation (Deep Dive)
Preventing SQL Injection
Preventing XSS and CSRF
Securing File Uploads
Password Storage and Hashing
Securing Sessions and Cookies
HTTPS and SSL Overview
Module 13: Email Handling and Notifications
Sending Emails with mail() Function
Sending Emails with PHPMailer or Symfony Mailer
HTML Email Templates
Email Attachments and SMTP Configuration
Sending Password Reset or Verification Emails
Module 14: Working with Composer and Packages
Introduction to Composer
Installing and Managing Packages
Understanding autoload and Namespaces
Example: Using PHPMailer, Carbon, or GuzzleHTTP
Creating Your Own Composer Package
Module 15: Building and Consuming REST APIs
Setting Up an API Endpoint
Using HTTP Methods (GET, POST, PUT, DELETE)
Sending and Receiving JSON
Token-based Authentication (JWT Basics)
Testing APIs with Postman
API Versioning and Documentation
Module 16: Advanced Database Techniques
Database Relationships (One-to-Many, Many-to-Many)
Joins and Complex Queries
Using Transactions and Rollbacks
Stored Procedures (Intro)
Database Optimization Tips
Module 17: Project – PHP Blog System
Project Overview and Planning
Setting Up the Database
Creating User Authentication
Admin Dashboard and CRUD for Posts
Adding Comments and File Uploads
Implementing Categories and Tags
Styling and Security Enhancements
Module 18: Project – Simple RESTful API
Building an API with PHP and PDO
Handling Requests and Responses
Returning JSON Data
Error Handling in APIs
Testing and Debugging
Module 19: Working with Frameworks (Introduction)
Why Use a Framework?
MVC Structure Explained
Overview of Laravel and CodeIgniter
Installing Laravel via Composer
Comparing Vanilla PHP and Framework-based Development
Module 20: Next Steps for PHP Developers
Introduction to PHP 8 Advanced Features (Attributes, JIT, Match Expression)
Working with CLI PHP Scripts
Introduction to Unit Testing (PHPUnit)
Version Control with Git & GitHub
Deploying PHP Applications (Shared Hosting, VPS, Docker)
Roadmap to Becoming a PHP Professional
✅ Optional Mini Projects Throughout the Course
File Upload Manager
Contact Form with Email Sending
JSON-based API Client
Secure Login System
Image Gallery with Pagination
