Web Development


PHP OOP: Object Oriented Programming for beginners + Project

PHP OOP: Learn OOP PHP and Take your skills to another level. Make serious money by building awesome applications.

4.41 (3319 reviews)


18.5 hours


May 2021

Last Update
Regular Price

Unlimited access to 30 000 Premium SkillShare courses

What you will learn

Learn New OOP techniques

Build PHP OOP applications


Hands on Real Life Project inside!

On Demand OOP Skills Inside

OOP is a must for everybody period!


Do you have the PHP basics, but need something that will propel you to a new level?

Then this course is for you.

You took some other courses that unfortunately did not provided real world experience?

Then this course is for you.

You need full prompt support from your instructor?

Then this course is for you.

Do you want NEW updated PHP code?

Then this course is for you.

Do you want easy to follow lectures?

Then this course is for you.

Do you want an instructor that cares and answers promptly?

I am here for you :)

How would you like to finally get all the knowledge you need to make all the money you want freelancing? This course will give that knowledge and more.

How would you life to get a top paying job building dynamic web applications?

This course will guaranteed you success if you apply yourself, and take the time to learn everything included.

PHP has allowed me to make a really great income, so much that It gives me time to teach others about it. You too can become a professional in the field, and create the life you always dreamed of.

PHP is one of the best web programming languages in the world, and all the big important websites, like Google, Apple, Facebook, Yahoo, Wikipedia and many more, use it for their web applications.

Commonly asked question

How much money can I make if I learn PHP?

Starting salaries in the US, it ranges from 60,000 to 150,000 a year, but freelancing can make you a lot more than that, if you know what you are doing.

  1. New PHP code
  2. New lectures added all the time
  3. Prompt support
  4. No boring lectures here :)
  5. Advance Project Creation
  6. I care about my students Education

100% Money Back if you don't like it

With 100% money guaranteed within 30 days, you have NOTHING to lose and a world of possibilities for your future. If for some reason you don't like the course or me, you can get your money back from Udemy.


PHP OOP: Object Oriented Programming for beginners + Project
PHP OOP: Object Oriented Programming for beginners + Project
PHP OOP: Object Oriented Programming for beginners + Project
PHP OOP: Object Oriented Programming for beginners + Project


Getting Started

Section Overview

Edwin from the future

Code Editors I recommend (Optional Lecture)

Web Development Software Installation (XAMPP)

Course Exercise files

Displaying errors in PHP

OOP Fundamentals

Section Overview

Defining a class

Defining methods

Instantiating a Class

Defining properties

Class Inheritance

Access Control Modifiers

Static Modifier

Getters and Setters

Referencing Parent Class with Static

Constructors and Destructors

OOP Project - Building a Photo Gallery System

Overview of this project

Project Directories & Assets

Editing and Modifying Files

Gallery System Links

Creating Pages

Creating Database and User Table

Database Class

Section Overview

Setting Up the Database Connection

Initializing all Includes in one file

Init file inclusion reminder (Edwin from the future)

Creating the Database Class

Future Update for database class

Automatic DB Connection Setup

The Query Method

Database Class Helper Methods

Testing Query Method

Improving our Connection to be more OOP

The User Class

Section Overview

Creating our User Class

Testing our find_all method

Static Method Usage and Challenge

Creating a Find user id method and Solution

Create This Query Method

Assigning Array Values to Object Properties

Auto Instantiation Method

Testing the Instantiation Method

Short Way Auto Instantiation

Creating The Attribute Finder Method

Adding our Instantiation Method

Using our Instantiation Method to find all users

Using our Instantiation Method to find 1 User

Undeclared Object Backup Function

Updating the Autoload Function (Edwin from the future)

So what is going on?

The Session Class

Section Overview

Starting Sessions

The Checking login Method

The Login Method

The Logout Method

Controlling Access to Admin

Creating The Login Page

Creating the Verify Method Part 1

Creating the Verify Method part 2

Duplicate return = Important watch the whole lecture - Edwin from the future

Login page position - (Edwin from the future)

Login Form Creation / Download

Creating our Login out Feature

Creating message method

Outputting Feedback for User

Files Basics

Section Overview

Understanding File Permissions

Magic Constants

Uploading Files

Section Overview

Configuring PHP for File Uploads

Sending Files

Analyzing Uploaded File Structure

File Error Code Explained

Moving Uploaded Files

CRUD: Create Method

Section Overview

Create Method Query Part1

Create Method Query Part 2

Inserting Last ID Method (Challenge)

Testing our Method (Solution)

CRUD: Update Method

Update Method Query

Testing our Update Method

CRUD: Delete Method

Delete Method

Testing the Delete Method

Abstracting and Improving

Section Overview

Improving the Create Method

Abstracting Tables

Abstracting Properties

Abstracting the Create Method Part 1

Abstracting the Create Method Part 2

Modifying the properties method

Testing the Abstracted Create Method

Abstracting the Update Method

Testing the Abstracted Update Method

Escaping Values From our Abstracted Methods

The Photo Class

Section Overview

Creating the Database Table for our Photo Class

Abstracting the remaining methods

Create the Parent Class

Fixing lecture 90 Double Return

Late Static Binding

Coding The Photo Class

Adding Class Properties

Testing Inherited Methods

Setting Up our Properties Array

Building Directory Paths

Set File Method

Save Method Part # 1

Save Method Part # 2

HTML Form Creation

Uploading and Testing

Coding The HTML for our Photos Table

Coding The PHP for a Photo Table

Dynamic Image Path

ADMIN PHOTOS: Deletion Section

Section Overview

DELETE PAGE and Links Part # 1

DELETE Page Part # 1

Making our Application More Generic

Creating The Delete Method

Setting Up The Right Redirect Paths for Delete

ADMIN PHOTOS: Edit Photo Section

Section Overview

Creating The Edit Page

Creating The Edit Page Part #2

Writing our PHP Code Part # 1

Writing our PHP Code Part # 2

Displaying Data

Updating Data

Picture and Sidebar Styling

Installing The Text Editor

Setting Size for Photos Page Thumbnail


Section Overview

Displaying User Page

Working with User Image

Creating User Image Column in DB Table

Deleting Users

Creating Add User Page Part # 1

Creating Add User Page Part # 2 : Testing

Assigning POST values to Object Properties

Setting Up Image Upload for User

Creating The User Edit Page

Updating User

Empty Password Field Fix

Updating User Modification

Delete within Edit User Page

Fixing Duplicate Record Creation Bug


Section Overview

Creating the Comments Table in the Database

Creating the Comment Class

Self Instantiation Comment Method

Find Comments Method

Testing our Comment Form

Including Our Classes in Photo.php FRONT-END

Pulling Data From Form Part # 1

Pulling Data From Form Part #2

Displaying & Making Comments - FRONT-END

Displaying & Making Comments - BACK-END

Deleting Comments

Creating the Individual Comment Page Part # 1

Creating the Individual Comment Page Part # 2

Creating the Count Comment Code and CHALLENGE

Comment Count Link & SOLUTION

Deleting Specific Photo Comments Code

ADMIN: Dashboard Setup

Section Overview

Dynamic Menu to Photo.php

Dashboard HTML Snippets Inclusion

Adding Google API Charts

Tracking Page Views Method

Creating the Count All Method and Echoing Photo Count

Setting Up Users and Comment Counts

Modifying Chart Properties

Dynamic Data in Chart Creation

FRONT-END : Gallery System

Setting Up Index to Display Photos Part # 1

Setting Up Index to Display Photos Part # 2

Correcting Photos Alignment with CSS

Coding the PHP in Photo.php FRON-END

Home Page Link and Footer Modifications


Section Overview

Setting Up our Pagination Variables

Creating the Paginate CLASS

Creating our Construct Function to Initialize some Properties

Building our Paginate Class Methods Part # 1

Building our Paginate Class Methods Part # 2

Instantiating and Testing Paginate

Setting Up our Next Page Link

Putting our Next Link to Work - CHALLENGE

Creating Previous Link - SOLUTION

Paginate Indication and Looping

Pagination Indication CSS



Extra Features Overview

Creating the Modal + HTML Snippets Download

Including Modal from somewhere else

Pulling Pictures Into Gallery / Modal

Enable Selection Button on Click - jQuery

Enabling the Selection Button with jQuery

Pulling User Id with jQuery and Javascript

Pulling Image Name with jQuery and Javascript

Writing the AJAX - Setting User Image

Testing our AJAX Code

Creating the AJAX PHP Method

Modifying / Improving Our AJAX PHP method

Photo Library Sidebar Part #1 - CHALLENGE INCLUDED

Photo Library Sidebar Part #2 - SOLUTION INCLUDED

Photo Library Sidebar Part #3 - COMPLETED

Creating Session Methods for Notifications in the Edit User Page Part # 1

Creating Session Methods for Notifications in the Edit User Page Part # 2

Updating User Methods

Setting Up Notifications for CRUD Part #1

Setting Up Notifications for CRUD Part #2

Installing a Multiple Upload and Drop JS File Plugin Part #1

Installing a Multiple Upload and Drop JS File Plugin Part #2

Installing a Multiple Upload and Drop JS File Plugin Part #3 - COMPLETE

Edit Photo Page Sidebar jQuery Dropdown

Login Page CSS

Confirm Delete with Javascript and jQuery

Conclusion and BONUS

Taking our application online

Hosting setup

Displaying errors online

Uploading files and database creation

Importing database and setting up configurations : CHALLENGE

Creating an online site root path : SOLUTION

Testing photos deletion functionality

Extra Lectures

Database refactoring

Updating photos with user_id


Aleksandar28 September 2020

Very disappointing course. On this course there will not be explained and also not used in the project very basic things in PHP OOP such as: abstract classes, interfaces, traits, namespaces... Explanations are very poor and the instructor like to tell you to check on php.net, but he should explain that to you and make examples (no examples in this course, only the project). Answers on your questions are very fast, but the problem is that you'll need to ask about a lot of things, because things are not explained well in most cases. Also, the person or persons who replays to messages knows not to read the message well and you'll need to repeat yourself and basically explain what you wrote in previous message and for some more difficult question you'll not get wanted answer. Teacher is very good in English and cheerful person, but this course will just waste your time. Of course, this is just my opinion.

Syaiful20 September 2020

Awesome course fro Edwin.. Finally finished it. Very helpful the aswering all errors that i got before.Two Thumbs Up

Corey19 September 2020

This is a good course on OO PHP. Edwin is a great instructor and he explains the concepts so they are easy to understand. It has been hard for me to pick up OO PHP but Edwin has helped me grasp the concepts that I was not understading before. The project really helps to nail down the concepts and how to implement OO PHP code in your projects.

Suandi18 August 2020

Fantastic course. I've learnt a lot by following what Edwin explained. All the content was very clear and Edwin's friendliness makes it easier to follow. Highly recommended.

Kevin17 August 2020

Fantastic course for advancing your PHP and OOP knowledge. Edwin is a fantastic instructor who really cares about his students!

David22 February 2020

I have done the course after Edwin's basis PHP beginner course. The style is vey similar, but you can feel that it's advanced, many things are expected. I enjoy Edwin's teaching style and the practicality of the course. Howevere there are also a number of things why I couldn't give this course a 5* review and I'll list these in case there is any interest in optimisng the course: 1) the biggest issue for me was that we do all these little steps in the course, setting up classes and methods etc and at some point it all just ends up being connected and flowing through. But while we focus on the isolated points, there is very little explanation on the connection between all the functions and classes, i.e. a holistic view of the concept, i.e. sometthing like "if this data here is entered, it goes back to the function xyz, which is part of class abc .. and that's why it works" a) i felt that things are not always well explained of what is done, for example a code is brought in and often (not always!) Edwin would just read the code but not actually translate/interpret what a code means and why certain things are needed. Many things left me puzzled and wondering why we are doing things in a certain way. Now I have completed the course within circa 2 weeks, so I had a good memory and connections, but for people taking longer breaks, I can see this being even more difficult. 3) unlike the beginner course, this course doesnt have any tests, which actually found quite helpful to get a feeling of being able to code yourself. 4) the code sometimes doesnt match what was build before and it's confusing and time consuming 5) in one instance (section 17) the code is actually wrong / files are not correctly linked (regarding the photo class) and it took unneccessary time to find out and fix this! 6) the support was mostly fast and its great that someone answers questions! However, I feel the support doesnt really know the code and offers often only generic answers. Also when you ask specific questions why the code / functionality in the gallery works like this, you get no answer or a generic answer that doesnt help. I have probably asked 25-30 questions along the way and I'd say to 10-15% I received unsatisfying answers. 7) Because the lectures are broken often in 2-3min pieces, which in principle gives a satisfying feeling of many classes, Edwin waffles quite a lot and repeats stuff that was just said. I watched the course after the basics, most of the time at 1.5x speed because of that. Lastly, I feel I have understood the basics of OOP but I was hoping to feel highly comfortable with it and fully understand it, which I dont. I feel Id need to redo the entire class or take another course. So my recommendation is unfortunatly limited, as much as I like Edwin's personality!

Seyed2 February 2020

I'm learning a tremendous amount. Thank you Edwin. Unfortunately, not as professional as some of the other tutorials. That is, the very impromtu and personable style leads to some rapid flip flopping of views making it at times hard to follow. Also, the light hearted comments at the beginning and the end get in the way of the learning because, after watching 5-8 videos in one coding session, you start to hear the same thing over and over again. I.e., "lock you doors, shut off your phone... etc" I say this only as constructive criticism. I've learned to honour all my teachers. Thank you Edwin.

Steven31 January 2020

This is my third PHP course with Edwin, originally starting as a complete beginner. His OOP course is easy to understand if you already know the basics. Every lecturer has a different style in teaching and I personally like his real world in-class style. Highly recommend it.

Prem29 January 2020

Thank You... Edwin, creating an awesome course. This course gives you an idea of how to oop in PHP works and really helpful for PHP frameworks...

Gursewak23 January 2020

It seems great so far and i am really excited to see myself using OOP in near future for every single project.

Karen22 January 2020

Mr Edwin is awesome instructor! He really cares and tries to motivate the students to learn how much they can through out the course. He makes you laugh. I have learned a lot from from this course and other course he teaches. He explains in detail. I do like that he leaves his mistakes in the videos because as a student I learn from the errors he receives. We grow from mistakes. Thank you Mr Edwin. I really in joy your courses.

Ulrich16 January 2020

The controls and screen layout looks like it has changed from when the video was made. I do not see the same tabs on the right as what Edwin is telling us about.

Dags15 January 2020

The project is a good one to work with and can be very helpful to understand how content management systems are build and work but there are a lot of instructions without further explanation. Like "we need to add x function in this file because if we don't it's bad..."

Ahmed15 January 2020

I learned a lot from you, and I took the oppotunity to custom the project to be more my own so I can learn better and not just copy paste you get me step up to a very new level of konwledge thank you for encouraging us to keep up learning and searching and improving our skills, I give you a gaint thumb up, thanks for every thing

Muizz12 January 2020

Great lessons! Classic Edwin, very thorough on the topics. Love the way he carries the students along and keeps motivating them. Never boring to listen to him.


Udemy ID


Course created date


Course Indexed date
Course Submitted by