Modern Php: The Complete Guide
Published 3/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 51.33 GB | Duration: 43h 54m
Published 3/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 51.33 GB | Duration: 43h 54m
Master the programming language that powers the web: Learn PHP and kickstart a lucrative web developer career
What you'll learn
Kickstart your tech career: Learn PHP, the language that powers more than 75% of websites, to land your first job, become a well-paid freelancer or get promoted
Learn modern PHP: PHP has changed a lot. Master the modern way of writing PHP, and get ready to actually use it in the current workplace
Lay solid programming foundations: once you know PHP, learning other languages will become much easier
Focus on building: Together, we will create simple websites, image galleries, login systems and even a fully fledged content management system (CMS)
Grasp the 'why' behind PHP: Only the most sought-after web developers know this
Learn with fun and interactive exercises: never forget the fundamental PHP concepts and applications
Master the MVC framework: Develop your own MVC framework, which enables you to write large-scale web applications and charge higher prices for your projects
Become a master debugger: learn how to debug even the most complex PHP errors and make your application 100% secure
Requirements
A laptop with a running OS (Windows / Mac / Linux)
No prior PHP knowledge is required
Basic HTML and CSS knowledge is advantageous, but there is still a basic refresher provided
Motivation to learn PHP :)
Description
*** Learn the modern way of writing PHP *** with 30 interactive exercises ***Are you looking for an interactive, step-by-step program to master modern PHP and kickstart your career as a web developer in 2024? Then read on.Many say that PHP is dead. But the truth is, PHP still powers 75% of online web applications today. This means that if you're looking to get a job as a web developer, or start a lucrative freelance career, you will encounter PHP.The problem is, many courses focus on an old way of writing PHP, which is becoming outdated in the market. Following these programs will just make you frustrated because the code won't scale and will be difficult to maintain. You won't learn the required practices needed to build big-scale web applications, and therefore will never be able to kickstart a fulfilling career as a PHP developer.This program aims to change that.I designed this course to help you master PHP, step by step from beginner to pro, but in a way how it's written nowadays. We'll focus on mastering the concepts that can get you from 0 to building a simple content management system (CMS) with your own framework.We will start with simple PHP code, but step by step, we'll introduce additional, concepts that turn PHP into a modern, powerful language: Object oriented programming, namespaces, autoloading, PSR-4, inheritance, PDO, MVC framework - just to name a few. Also, you will learn about best-practices that help you prevent security attacks. You will learn how to prevent cross-site-scripting (XSS) attacks, SQL injections, privilege escalation attacks and even more. Being aware and being able to mitigate those risks is essential if you want to become a sought-after freelancer or an in-demand senior developer that companies can rely on.And mind you, this course isn't just be theoretical. The chapters are packed with practical examples, engaging quizzes, and real-world scenarios that will make this experience fun and engaging. Plus, at the end of the course, you will also have built several projects you can showcase and use in your portfolio!Last but not least, you will also learn the 'why' behind PHP - so that you feel confident to go out there and apply this knowledge to real-life projects.So, after this course you will also be able to master various development styles. This course covers it all:From simple PHP scripts for smaller projectsOver object oriented scripts for medium-sized projectsUp to MVC-Frameworks for large-scale projectsThis allows you to develop professionally and know when you should use which style.Some things you will learn:PHP basicsHow to run file uploadsHow a web server worksHow to access a database and write a guestbookHow to embed PHP in HTMLFunctions, arrays, strings, if conditions,…Control a database (MySQL / phpmyadmin)How to create simple websites with PHP scriptsHow to create an image gallery with upload functionalityHow to write a CMS with object orientation & MVC patternsCookies & Sessions: Create a login system (and a cookie notice)Learn how to keep track of complex projects with advanced PHP features (namespaces, autoloading, PSR-4, MVC patterns, container patterns, inheritance, …)The german version of this course is already the most popular PHP course on the German market here on Udemy. With this enhanced, english version, I'm opening this knowledge to the international market. Enroll now and get your foot in the exciting world of web development!
Overview
Section 1: Introduction
Lecture 1 Introduction
Lecture 2 Install XAMPP (Windows)
Lecture 3 Install Visual Studio Code (Windows)
Lecture 4 Install XAMPP (macOS)
Lecture 5 Important fix: XAMPP (macOS)
Lecture 6 Install Visual Studio Code (macOS)
Section 2: First Steps with PHP - Build a dynamic Restaurant Website
Lecture 7 Overview
Lecture 8 A first PHP file and the `echo` command: Display text on a website
Lecture 9 The Basics of Text Generation with PHP: Create dynamic background colors
Lecture 10 The `include` command: Combine multiple PHP files
Lecture 11 Variables in PHP: Store and access data dynamically
Lecture 12 Project: Multi-Page Restaurant Website (Introduction)
Lecture 13 Project: Multi-Page Restaurant Website (Refactoring)
Lecture 14 Project: Multi-Page Restaurant Website (Displaying Data & Exercise)
Lecture 15 Project: Multi-Page Restaurant Website (Sample Solution; Adding another Page)
Lecture 16 How to deal with Error & Warning Messages in PHP?
Section 3: Data Types & Logic Essentials - Craft Conditional Responses with if/else
Lecture 17 Overview
Lecture 18 Strings within Single Quotes & Combine Strings with the Dot (`.`) Operator
Lecture 19 Strings within Double Quotes: Utilize Variable Substitution & Special Characters
Lecture 20 Numbers
Lecture 21 Introduction: Coding Exercises in this course
Lecture 22 Tips for Coding Exercises
Lecture 23 The `var_dump` function: Inspect Variables
Lecture 24 Booleans & Comparison Operators: Compare Values
Lecture 25 The `if` statement: Direct Conditional Control Flows
Lecture 26 The `else if` and `else` clauses: Expand Decision-making Options
Lecture 27 The `isset`, `empty` and `unset` functions: Validate and Delete Variables
Lecture 28 Alternative Syntax in PHP: Enhance Clarity in HTML Integration
Lecture 29 Boolean Operators: Craft More Complex Conditions with `!`, `&&`, `||`, `XOR`
Lecture 30 Project: Restaurant Website Refinement (Exercise Instructions)
Lecture 31 Restaurant Website Refinement (Sample Solution; dynamic titles and images)
Lecture 32 Restaurant Website Refinement (Sample Solution; fixing the active menu)
Section 4: Arrays & the foreach Loop - Store, Manipulate and Use Data Sets Efficiently
Lecture 33 Motivation
Lecture 34 Create an Array and Access its Elements
Lecture 35 Test the Existence of specific Keys and Values in Arrays
Lecture 36 Change, Delete and Append Elements to an Array
Lecture 37 Giveaway Example: Select Winners from a List Randomly
Lecture 38 Array Functions: Find Duplicate Elements and Sort Arrays
Lecture 39 The `foreach` Loop: Iterate over Elements in an Array
Lecture 40 Control Loops with `break` and `continue`
Lecture 41 Additional Array Functions
Section 5: Associative Arrays - Manage Key-Value-Pairs for Advanced Data Handling
Lecture 42 Overview
Lecture 43 Motivation & Define an Associative Array
Lecture 44 Manipulate and Output Keys and Values form Associative Arrays
Lecture 45 Best Practices for Managing Associative Arrays
Section 6: URL Parameters - Capture and Utilize Inputs for Secure, Dynamic Web Interactions
Lecture 46 Overview
Lecture 47 The short `if` Statement
Lecture 48 The `$_GET` Array: Retrieve User Input from the URL
Lecture 49 Dynamic URL Creation: Craft Links with Parameters and `http_build_query`
Lecture 50 Submit a form through GET
Lecture 51 Submit a form through POST
Lecture 52 Securing Websites: Prevent Cross-Site Scripting (XSS) with `htmlspecialchars`
Lecture 53 Project: Secure Recipe App (Introduction & Setup)
Lecture 54 Project: Secure Recipe App (Secure Input Handling & Exercise)
Lecture 55 Project: Secure Recipe App (Sample Solution)
Section 7: PROJECT - Build a Multi-Page Image Gallery
Lecture 56 Overview & Code Base Walkthrough
Lecture 57 The `rawurlencode` function: Ensure Safe Data Transmission in URLs (Hint)
Lecture 58 CSS Attributes for Image Control: `object-fit` and `aspect-ratio` (Hint)
Lecture 59 Project: Image Gallery - Part 1 (Display the Images in a Gallery View)
Lecture 60 Project: Image Gallery - Part 2 (Design the Gallery Layout)
Lecture 61 Project: Image Gallery - Part 3 (Implement the Image Page Contents)
Section 8: Advanced Concepts - Variable Types, Including Files and String Functions
Lecture 62 Overview
Lecture 63 Type Checking: Identify Types with `is_` Functions & Manage Mixed-Type Arrays
Lecture 64 Type Casting: Solve Type Mismatches and Debug Code Errors Efficiently
Lecture 65 The Null Coalescing Operator: Simplify Default Value Assignments
Lecture 66 The @ Symbol: Silence PHP Warnings
Lecture 67 Optimizing `include`: Use __DIR__ for Reliable File Path Resolution
Lecture 68 File Inclusions: `include`, `require`, and their `*_once` Variants
Lecture 69 The functions `file_get_contents` and `readfile`
Lecture 70 The `implode` and `explode` functions: Split Strings and Merge Arrays
Lecture 71 String Functions - Part 1 (`strlen`, `strtolower`, `trim`, `strpos`,…)
Lecture 72 String Functions - Part 2 (`nl2br`, `str_replace`)
Lecture 73 The index.php File: Directory Indexing and File Recognition on Webservers
Section 9: Nested Arrays - Simplify Complex Data Handling
Lecture 74 Overview
Lecture 75 Define a Nested Array and Access Multi-Level Data
Lecture 76 Extract Data from Nested Arrays by `foreach` Loops
Lecture 77 Navigate Multi-Level Data with Nested `foreach` Loops
Lecture 78 Deal with Irregular Data in Nested Arrays
Section 10: PROJECT - Build an Air Quality Data Browser
Lecture 79 Overview
Lecture 80 Processing the Air Quality Data: Decode JSON & Handle .bzip2 Compression
Lecture 81 Transforming JSON Data into Web Content: Create Dynamic City Links
Lecture 82 Crafting City Statistics Pages: Retrieve Data & Handle Errors
Lecture 83 Analyzing PM2.5 Data: Calculate Air Quality Index
Lecture 84 Manage Data Integrity & Integrate Additional Measurement Parameters (PM10)
Lecture 85 Polishing the Output: Add Numeric Formatting and Measurement Units
Lecture 86 Integrating Chart.js with PHP - Part 1 (Build Interactive Visual Charts)
Lecture 87 Integrating Chart.js with PHP - Part 2 (Implement Robust Data Transfer)
Lecture 88 Ensuring Data Integrity: Deal with Missing Data
Section 11: for and the while Loops - Achieve Finer Control Over Iterations
Lecture 89 Overview
Lecture 90 The `for` loop: Repeat Actions and Manage Iterations
Lecture 91 The `while` loop: Execute Code with Conditional Repeats and Avoid Infinite Loops
Section 12: PROJECT - Build an Auto-Update Travel Showcase (and Explore File Systems)
Lecture 92 Overview
Lecture 93 Utilize `opendir`, `readdir`, and `closedir` for Directory Management
Lecture 94 Using `readdir` in a while Loop: Read File Directories Efficiently
Lecture 95 The `pathinfo` function: Extract File Path Components for Filtering File Types
Lecture 96 File Functions: `file_exists`, `is_file`, `is_dir`, `filemtime`, `filesize`,…
Lecture 97 Integrate Images with Descriptive Texts (Exercise Instructions)
Lecture 98 Read Text Data for Image Descriptions (Sample Solution - Part 1)
Lecture 99 Organize and Process Text Data Effectively (Sample Solution - Part 2)
Lecture 100 Render Text Data on the Website (Sample Solution - Part 3)
Section 13: Intro to MariaDB/MySQL Databases in phpMyAdmin - Standardize Data Management
Lecture 101 Overview
Lecture 102 Foundations: From Excel Spreadsheets to Database Tables
Lecture 103 First steps with phpMyAdmin: Create new Databases and store Data
Lecture 104 Primary Keys: Ensure Data Integrity with unique ID Columns
Lecture 105 Auto_Increment: Generate unique IDs with ease
Lecture 106 Export & Import Files in phpMyAdmin
Section 14: Database Interactivity - Connect to MySQL/MariaDB from PHP
Lecture 107 Overview
Lecture 108 Setting up the Database and Table for the Notes App
Lecture 109 Object Orientation in PHP: Manage Zip Files with Methods (Crash course)
Lecture 110 Database Connections with PDO: Initialization & Best Practices
Lecture 111 Troubleshooting: Database Connections with PDO
Lecture 112 Data Retrieval with PDO: Fetch Data from a Database
Lecture 113 Rendering Fetched Data as HTML: Enhance Readability and Security
Lecture 114 SQL Query Basics: Utilize the ORDER BY Clause and SELECT Specific Columns
Lecture 115 Filter Data with the WHERE Clause and Fetch Individual Entries with PDO
Lecture 116 Secure Parameter Handling in PDO: Prevent SQL Injection with Bind Methods
Lecture 117 Insert Data Securely with INSERT INTO, Placeholders, and the `bindValue` Method
Lecture 118 Database Manipulation: Using UPDATE and DELETE FROM Securely
Lecture 119 Prevent Leakage of Database Connection Information in older (<=8.1) PHP Versions
Lecture 120 Choosing the Charset: Ensure Compatibility with with utf8mb4 encoding
Section 15: PROJECT: Build the Design for a Diary App
Lecture 121 Overview
Lecture 122 Design Files
Lecture 123 Starting with the Design
Lecture 124 Adding the Logo
Lecture 125 Create the "New Entry" Button
Lecture 126 Position the Button
Lecture 127 Implement the Main Area
Lecture 128 Create a Container
Lecture 129 Design the Layout of the Card (Part 1)
Lecture 130 Design the Layout of the Card (Part 2)
Lecture 131 Design the Layout of the Card (Part 3)
Lecture 132 Responsive Design
Lecture 133 Implement the Pagination
Lecture 134 Finish the Pagination
Lecture 135 Add the Background (Part 1)
Lecture 136 Add the Background (Part 2)
Lecture 137 Add the Footer
Lecture 138 Develop the Form (Part 1)
Lecture 139 Develop the Form (Part 2)
Lecture 140 Finishing Touches
Section 16: PROJECT: Build a Diary App
Lecture 141 Overview
Lecture 142 Create the DataBase
Lecture 143 Fetch Data from the DataBase
Lecture 144 The form Page
Lecture 145 Submit Data into the DataBase
Lecture 146 Add Pagination
Lecture 147 Generate Links
Lecture 148 Dates (Part 1)
Lecture 149 Dates (Part 2)
Lecture 150 Format the Dates
Lecture 151 Upload Files (Part 1)
Lecture 152 Upload Files (Part 2)
Lecture 153 How to Scale an Image?
Lecture 154 Resize an Image and Upload
Lecture 155 Implement Image Upload
Lecture 156 Catch Invalid Uploads
Section 17: Headers in PHP - Control Server Communication
Lecture 157 Overview
Lecture 158 The `$_SERVER` Array: Gain Insights about the Server running your PHP Script
Lecture 159 HTTP Headers: Examine Browser to Server Communication
Lecture 160 HTTP Headers: Examine Server to Browser Communication
Lecture 161 Content-Type Header Example: Dynamically Serve CSS with PHP
Lecture 162 Output Buffering: Avoid Header Issues and Ensure Seamless File Transmissions
Lecture 163 Content-Disposition and Content-Length Header: Implement File Downloads
Lecture 164 Location Header: Redirect Users to Files
Lecture 165 Example: Build a Newsletter Sign-Up Page using Location Headers
Lecture 166 Decipher HTTP Status Codes: Success and Errors
Lecture 167 Project: Craft a Custom 404 Error Page (Part 1)
Lecture 168 Project: Create a Custom ErrorDocument (Part 2)
Section 18: Functions - Customize Operations For Reusable Code
Lecture 169 Overview
Lecture 170 Declare and Invocate Custom Functions
Lecture 171 Function Contexts and Parameter Passing: Transfer Data into Functions
Lecture 172 Multiple Parameters & Default Values: Configure Functions
Lecture 173 The `return` Statement: Extract Function Output
Lecture 174 Multiple `return` Statements: Control Function Output
Lecture 175 The `null` Type: Represent Missing Values
Lecture 176 Function Redefinition: Best Practices
Lecture 177 Example: Handling File Sizes with a Divide & Conquer Strategy
Section 19: Typed Functions - Write More Reliable and Precise Code
Lecture 178 Overview
Lecture 179 Typed Functions: Secure & Document your Code
Lecture 180 Union Types: Enable Multiple Parameter Types
Lecture 181 Return Types: Enforce Reliable Function Outputs
Lecture 182 Nullable Types: Allow for Missing Values as Parameters
Lecture 183 Strict Types: Enforce Accurate Type Handling
Section 20: PROJECT: Build a Name Explorer App
Lecture 184 Overview
Lecture 185 Import the Data
Lecture 186 Connect to DataBase
Lecture 187 Navigation in the Header
Lecture 188 List the names
Lecture 189 DB Query in function
Lecture 190 Move Function to a separate File
Lecture 191 Solution: Develop the Name View
Lecture 192 Polishing
Lecture 193 DB query for overview
Lecture 194 Generate an Overview Page
Lecture 195 Output Buffering
Lecture 196 Create a `render()` function
Lecture 197 Passing Data into the `render()` function
Lecture 198 Use the `render()` function
Lecture 199 Highlight the Letter
Lecture 200 Add Pagination (Part 1)
Lecture 201 Add Pagination (Part 2)
Lecture 202 Important: Improve DB performance with indexes
Lecture 203 Important: Improve groupby performance
Lecture 204 Fix a Bug
Section 21: Regular Expressions (Regex): Harness Pattern-Based Text Processing
Lecture 205 Overview
Lecture 206 Intro to Regex: Search Patterns in Strings
Lecture 207 Quantifiers: Control Repetitions for Powerful Pattern Matching
Lecture 208 The `^` & `$` Anchors: Define String Boundaries
Lecture 209 Bracket Expressions (Theory): Craft Custom Character Sets and Ranges
Lecture 210 Bracket Expressions in Practice
Lecture 211 Capture Groups: Extract Structured Data Elements
Lecture 212 Text Transformations: Pattern-Based Edits with `preg_replace`
Section 22: Foundations of Object-Orientated Programming (OOP): Enhance your Code Structure
Lecture 213 Overview
Lecture 214 Limitations of Procedural Approaches: Setting the Stage for OOP
Lecture 215 Classes in OOP: Create Custom Objects
Lecture 216 Properties in a Class: Typing, Initialization, and Management
Lecture 217 Class Methods: Define Behavior within Objects
Lecture 218 Constructors: Ensure Proper Initialization of Object Properties
Lecture 219 Simplifying Constructors: Efficient Initialization & Business Logic Integration
Lecture 220 Example: Implement a Transfer Method for Transactions Between Bank Accounts
Lecture 221 Securing Class Properties: From Public to Private Access
Section 23: PROJECT: Build a City Explorer
Lecture 222 Overview
Lecture 223 Create the Model Class
Lecture 224 Add a Repository
Lecture 225 Fetch Additional Columns
Lecture 226 Show an individual City
Lecture 227 Optimize the Code
Lecture 228 Country to Flag Symbol (Bonus)
Lecture 229 Add Flag to the Project
Lecture 230 Implement Pagination (Exercise)
Lecture 231 Implement Pagination (Solution)
Lecture 232 Implement a Form
Lecture 233 Update Entries
Lecture 234 Add Password Protection (Bonus)
Section 24: OOP (Part 2): Organize Code with Namespaces, Autoloading, Interfaces
Lecture 235 Overview
Lecture 236 Namespaces in PHP: Organize Code and Avoid Naming Collisions
Lecture 237 The `use` command: Simplify PHP Code with Namespaces
Lecture 238 Class Names and Namespaces: Access, Resolution, and Instance Verification
Lecture 239 Autoloading: Load Classes and Manage Namespaces Efficiently
Lecture 240 Advanced Namespacing : Adopt PSR-4 Autoloading
Lecture 241 Interfaces: Define and Implement for Enhanced Type Safety and Reusability
Section 25: PROJECT: Build a Weather App
Lecture 242 Overview
Lecture 243 Implement the App Frame
Lecture 244 Show the Background
Lecture 245 Implement the Top Bar
Lecture 246 Visualize the Weather
Lecture 247 Show the Weather Info
Lecture 248 Final Polishing
Section 26: OOP (Part 3): Reuse Code For Scalability with Inheritance
Lecture 249 Overview
Lecture 250 Intro to Inheritance: Extend Functionality From Parent Class
Lecture 251 Set Up the Child Class Constructor for Effective Object Initialization
Lecture 252 Inheritance & Property Accessibility: Navigate Properties Across Classes
Lecture 253 Property Visibility: Private and Protected Properties for Secure Data Handling
Lecture 254 The `parent` & `self` keywords: Precisely Reference Class Methods
Lecture 255 Abstract Classes: Enforce Method Implementation for Reliable Code
Section 27: PROJECT: Build a Content Management System (Part 1) - Foundation
Lecture 256 Overview: Initial Setup
Lecture 257 Develop the NotFoundController
Lecture 258 Implement the Error Page
Lecture 259 Overview: PagesController
Lecture 260 Initiate the PagesController
Lecture 261 Set up the Database
Lecture 262 Create the PageModel and the PagesRepository
Lecture 263 Add the 'About us' Page & Handle Errors
Lecture 264 Render the Navigation Bar
Section 28: The Container Pattern: Streamline Dependency Management
Lecture 265 Overview
Lecture 266 Optimize Dependency Injection with Container Strategies
Lecture 267 The `use` keyword: Weave external Data into Closures
Lecture 268 Refactor the Container with an Instances Array
Lecture 269 Refactor the Container with Unified Instance Creation
Lecture 270 Implement a Recipes Array for Dynamic Instance Creation
Lecture 271 Register the Recipes for Instance Creation outside the Container
Lecture 272 Secure Instance Creation with Private `bind()` Functions
Lecture 273 Enhanced Code Modularity: Utilize Return Values in File Inclusion
Section 29: PROJECT: Build a Content Management System (Part 2) - Container Pattern
Lecture 274 Utilize the Container Pattern in the CMS
Section 30: PROJECT: Build a Content Management System (Part 3) - Admin Area
Lecture 275 Create the Admin Menu
Lecture 276 Change the Colors in the Admin Area with CSS Variables (Bonus)
Lecture 277 Add the PagesRepository to the PagesAdminController (Exercise)
Lecture 278 Create the Overview Page for the Admin Area
Lecture 279 Implement the Create Form for the Admin Area
Lecture 280 Add Input Validation & Error Handling to the Create Form
Lecture 281 Implement the Delete Functionality (Part 1)
Lecture 282 Implement the Delete Functionality (Part 2)
Lecture 283 Style Buttons as Links (Bonus)
Lecture 284 Implement the Edit Feature (Exercise)
Lecture 285 Implement the Edit Feature (Solution Part 1)
Lecture 286 Implement the Edit Feature (Solution Part 2)
Section 31: Cookies & Sessions: Manage and Safeguard User Data
Lecture 287 Overview & Named Arguments
Lecture 288 The `setcookie()` Function: Create Cookies in PHP
Lecture 289 Additional Parameters for `setcookie()`: Manage Cookies in PHP
Lecture 290 Sessions in PHP: Secure Data with the `$_SESSION` Variable
Lecture 291 Implement a Cookies Message (Bonus)
Section 32: PROJECT: Build a Content Management System (Part 4) - Authentication System
Lecture 292 Overview
Lecture 293 How to Safely Store a Password
Lecture 294 Set up the Users Table
Lecture 295 Create the Login Form
Lecture 296 Validate the Login with the LoginController
Lecture 297 Store the Login within the Session
Lecture 298 Ensure Login with the authService
Lecture 299 Prevent Starting Sessions Multiple Times
Lecture 300 Implement the Logout Feature
Lecture 301 Intro to Cross-Site Request Forgery (CSRF)
Lecture 302 Protect against CSRF with Tokens (Part 1)
Lecture 303 Protect against CSRF with Tokens (Part 2)
Lecture 304 Protect against CSRF with Tokens (Part 3)
Lecture 305 Conclusion of the CMS Project
Section 33: OOP (Part 4): Dive into Advanced Topics for More Robust and Maintainable Code
Lecture 306 Overview
Lecture 307 Static Methods & Variables: Invoke Class Behavior & Share Data Without Instances
Lecture 308 Constants: Define Global Options & Class-Attached Values with `define` & `const'
Lecture 309 The Singleton Pattern: Ensure a Single Instance Throughout Your App
Lecture 310 Magic Methods: Enhance Object Interaction and Property Management
Lecture 311 ArrayAccess & Countable: Emulate Arrays with Interfaces
Lecture 312 Exception Handling: Safeguard Functions with Try-Catch Mechanisms
Lecture 313 Custom Exceptions: Craft Precision Error Handling
Section 34: Apache's `mod_rewrite`: Rewrite URL Requests (optional)
Lecture 314 Overview: Cleaner URLs with `mod_rewrite` in Apache
Lecture 315 Configuration of `mod_rewrite`: Direct Images with Conditions and Exceptions
Lecture 316 URL Handling with PHP and Apache: Redirect Requests
Lecture 317 Exploring the `mod_rewrite` Documentation
Section 35: String Encodings - Understand Multilingual Strings & Database Collations
Lecture 318 Overview
Lecture 319 Multibyte Characters: Measure String Lengths Accurately with `mb_strlen`
Lecture 320 Advanced Multibyte String Functions: `mb_substr`, `mb_strpos`, `mb_ord`,…
Lecture 321 Unicode Complexities: Safeguard Your Web Apps from Hidden Characters
Lecture 322 Bonus: Intro to the symfony/string package
Lecture 323 Convert non-UTF-8 strings with `mb_convert_encoding`
Lecture 324 Database Encodings: The Critical Role of utf8mb4 in MySQL
Lecture 325 Collations in MySQL: Uncover the Impact on Sorting and Searching
Section 36: Refresher: Jumpstart or Revisit HTML & CSS Basics (optional)
Lecture 326 Intro to HTML: Headings, Paragraphs & Anchor Tags
Lecture 327 Inline Elements vs Block Elements: Shape your Content
Lecture 328 Intro to CSS: Change the Style of an HTML Element
Lecture 329 From Inline Styles to CSS Files: Enhance Flexibility and Control
Lecture 330 CSS Selectors: Select Elements by `id` and `class`
Lecture 331 More Complex Selectors: Target Elements Precisely
Lecture 332 The Block Model: Create Layouts with CSS
Lecture 333 Embed Images and Style Inline-Block Elements
Lecture 334 Structure HTML Pages with divs, spans, and Semantic Tags like header
Section 37: Outlook: How To Expand Your PHP Horizon
Lecture 335 Advanced Development with Packagist, Composer, and Frameworks (Symfony, Laravel)
Lecture 336 Exploring Ready-Made Solutions: phpBB, Shopware, and Wordpress
Lecture 337 PhpStorm: Optimize Your PHP Development Environment
Lecture 338 Final Words
Beginners: This course is the perfect solution for beginners looking to become experts in PHP thanks to its easy-to-follow exercises and self-paced structure,Intermediate Users: If you already have some experience, you can benefit from delving deep into more complex topics like object-oriented programming, APIs and SQL queries,Web Developers: Learn the programming language that can help you increase your prices, land exciting job opportunities or advance in your career in 2023,Enthusiasts & Hobbyists: PHP is the perfect language to build exciting projects, launch servers and start your next applications