The Complete Php Mvc Build A Modern Php Ecommerce Store

Learn to master modern PHP MVC core development step-by-step, and build your eCommerce store in less than 30 days

Last updated 2022-01-10 | 4.2

- Build Your Own Modern PHP MVC framework
- Build a Fully Functional and Secured Admin Panel
- Organize your PHP code into models
- views and controllers

What you'll learn

Build Your Own Modern PHP MVC framework
Build a Fully Functional and Secured Admin Panel
Organize your PHP code into models
views and controllers
Build a Shopping Cart With PHP OOP and VueJs
Build and Deploy eCormmerce Website to Production
Process Payment With Stripe API and PayPal Express Checkout API
Build Apps with Laravel Eloquent ORM for Database Manaipulation
Build a Responsive Website With ZURB Foundation
Querying Data For Dashboard Reporting PHP & ChartJs
Build Front-end Apps With VueJs
Registration and Login (OOP User Authentication)
Work with JSON data returned from Any API
Autoload Classes Using PSR-4 (Namespaces and Composer) to Autoload PHP Classes Automatically
Error and Exceptions Handle Based on the Environment
Save Development Time By Leveraging Packages from PHP Ecosystem
Build Apps with Laravel Blade Templating Engine
Become A Well Equiped Fullstack Web Developer
Learn Modern PHP Workflow and Write PHP Codes That Doesn't Suck
Task Automation With Webpack
Build A Secure System
Fast And Efficiently
Protect Any PHP Web App Against Cross Site Request Foggery (CSRF) Attack
Build A Custom PHP Validation Class That You can Reuse In Other Projects
Build A Custom HTTP Request Class That You can Reuse In Other Projects
Build A Custom Session Manager Class That You can Reuse In Other Projects
Build A Custom File Upload Class That You can Reuse In Other Projects
Easily Learn an Existing framework like Laravel or CodeIgniter
Free Access to PHP Object-Oriented Bootcamp Course

* Requirements

* Basic Understanding of PHP OOP

Description

  • Build Your Own Modern PHP MVC framework
  • Build a Fully Functional and Secured Admin Panel
  • Organize your PHP code into models, views and controllers
  • Build a Shopping Cart With PHP OOP and VueJs
  • Build and Deploy eCormmerce Website to Production
  • Process Payment With Stripe API and PayPal Express Checkout API
  • Build Apps with Laravel Eloquent ORM for Database Manaipulation
  • Build a Responsive Website With ZURB Foundation
  • Querying Data For Dashboard Reporting PHP & ChartJs
  • Build Front-end Apps With VueJs
  • Registration and Login (OOP User Authentication)
  • Work with JSON data returned from Any API
  • Autoload Classes Using PSR-4 (Namespaces and Composer) to Autoload PHP Classes Automatically
  • Error and Exceptions Handle Based on the Environment
  • Save Development Time By Leveraging Packages from PHP Ecosystem
  • Build Apps with Laravel Blade Templating Engine
  • Become A Well Equiped Fullstack Web Developer
  • Learn Modern PHP Workflow and Write PHP Codes That Doesn't Suck
  • Task Automation With Webpack
  • Build A Secure System, Fast And Efficiently
  • Protect Any PHP Web App Against Cross Site Request Foggery (CSRF) Attack
  • Build A Custom PHP Validation Class That You can Reuse In Other Projects
  • Build A Custom HTTP Request Class That You can Reuse In Other Projects
  • Build A Custom Session Manager Class That You can Reuse In Other Projects
  • Build A Custom File Upload Class That You can Reuse In Other Projects
  • Easily Learn an Existing framework like Laravel or CodeIgniter
  • Free Access to PHP Object-Oriented Bootcamp Course

Course content

24 sections • 147 lectures

Project Overview Preview 07:40

I'll go over the broad topics we'll cover in the course, as well as how the finish product of the eCommerce system that we will develop in
the course. I'll also covered what is required to take this course, target audience and the benefits that will be derived from taking this
course.

How to ask for help and Access Free OOP Bootcamp course Preview 00:48

How to source code Preview 00:14

Project setup and directories structure Preview 08:28

In this lecture, will go through the initial project setup and create the directories that we will be needing to put the system together.

**IMPORTANT** Read This Before watching the next video Preview 00:11

Set up environment variables and Initialize App Preview 12:31

In this lecture we shall setup project environment variable and learn how to load them using phpdotenv package and finally will shall create a project initialization file.

**IMPORTANT** Read This Before Installing NodeJS Preview 00:14

Setting up front-end dependencies management - Windows Preview 06:19

In this lecture, you will learn how to setup front-end dependencies management, we shall install Node, NPM, Gulp, Bower and Laravel Elixir on Windows operating system.

Setting up front-end dependencies management - MacOS Preview 04:09

In this lecture, you will learn how to setup front-end dependencies management, we shall install Homebrew, Node, NPM, Gulp, Bower and Laravel Elixir on Mac operating system.

Important - Read This Before Watching The Next Lecture Preview 00:13

Installing Foundation sites, Motion UI and Slick-carousel Preview 07:31

In this lecture you will learn how to install Zurb Foundation a framework for building responsive web applications, Motion UI for animations and transition and Slick Carousel using bower as the dependency manager.

Task Automation with Gulp and Laravel Elixir Preview 19:43

In this lecture you will learn how to automate front-end task such as compiling sass to css, combining multiple css and JavaScript files into a single build. This will save you lots of development time and improve the performance of your app.

Setup Routing and Mod Rewrite Preview 12:08

In this lecture we shall setup clean URL using Altorouter, create a routes file and redirect all requests to index.php in the public folder

Creating our first Controller Preview 04:08

In this lecture, we shall create the very first Controller for this series

Install and Setup Blade Templating Engine Preview 05:35

In this lecture we shall install and setup Blade templating engine which will serve as the view of this eCommerce application

Creating a Route Dispatcher Preview 15:02

In this lecture you learn how to integrate routes, controllers and views using a route dispatcher class that will shall be building together.

Autoloading Required classes and files Preview 06:05

In this lecture, we shall leverage the auto-loading feature of composer to load classes and files when they are required.

Initial Database Design Preview 12:41

In this lecture, we shall be creating a database and some tables needed for the eCommerce store.

Object-relational mapping (ORM) Preview 05:26

In this lecture, I'll give a brief introduction to Object-relational mapping (ORM), some of the benefits of using it and some downsides.

Install and Setup Eloquent ORM Preview 09:45

In this lecture, you'll learn how to install, setup and use eloquent ORM.

Setting up email sending with email template support - Part 1 Preview 11:38

In this lecture you will learn how to configure PHPMailer so that we can pass variable to an external template and send it to the end user.

Setting up email sending with email template support - Part 2 Preview 13:31

In this lecture, we shall finish up the email sending with template support functionality

Error Handling Preview 14:24

In this lecture you will learn how to create a custom PHP error handler, turn off error for production environment and display a friendly message and finally use whoops to report errors on development environment.

Setup Admin Panel Template - Part 1 Preview 10:22

In this lecture we begin building the admin panel for the eCommerce store, starting with setting up reusable components (template).

Setup Admin Panel Template - Part 2 Preview 05:21

In this lecture we continue building the admin panel for the eCommerce store.

Add Font Awesome and Sidebar Content Preview 05:03

In this lecture you learn how to add font awesome to a project using the JavaScript cdn and also add contents to the sidebar that was completed in the last lecture

Styling the Admin Sidebar Preview 11:21

In this lecture, you will learn how to use basic sass syntax to add style to the admin sidebar.

Creating a Session Manager Class Preview 10:36

In this lecture you will learn how to create a Session Manager Class for Easier Session management

Creating a CSRF Protection Class Preview 09:36

In this lecture you will learn about Cross Site Request Forgery (CSRF) Attack and how to secure your PHP web app against such attack. You will create a simple CSRF Protection Class that can be used to generate and verify secured token.

Creating a Redirect Class Preview 04:04

In this lecture, we create a redirect class with two methods; one to redirect to specific page and the other to redirect back

Creating a File Upload Class - part 1 Preview 14:29

In the two part video we begin creating a class that a dedicated to handling file uploads in our eCommerce project

Creating a File Upload Class - part 2 Preview 08:01

In this lecture we complete the file upload class functionality that we started in the previous lecture

Creating a Request Class - part 1 Preview 14:53

In this lecture you will learn how to create a simple request class that will make it extremely easy for you to handle HTTP GET, POST and FILE request in your PHP projects.

Creating a Request Class - part 2 Preview 07:50

In this lecture you finish the request class that will started creating in the previous lecture.

Product Category - Part 1 Preview 11:16

In this multi part lecture you will learn the basis of Eloquent ORM, create product category routes, controllers and views.

Product Category - Part 2 Preview 14:41

In this lecture we continue with product category by creating the view.

Product Category - Part 3 Preview 11:11

In this lecture we create a slug function, save product category into the database and some practical Eloquent fillable stuff

Form Request Validation - Part 1 Preview 12:47

In this first of a five part lectures series on validation, you will learn how to create a validation class and add and test some validation methods.

Form Request Validation - Part 2 Preview 11:40

We continue from where we left off in the last video to add some more validation rules.

Form Request Validation - Part 3 Preview 10:57

In this lecture you will learn how to use OOP strategy to create two more methods that will make validation using the rules we created in the last two lectures painless and very efficient.

Form Request Validation - Part 4 Preview 11:30

In this lecture you will learn how to properly format validation error messages, create three more methods for validation error handling.

Form Request Validation - Part 5 Preview 06:41

In this final lecture on validation, you're now ready to test everything as one entity.

Paginating Database Record in PHP Preview 15:12

In this lecture, you will learn how to easily add pagination functionality to any project.

Refactoring Product Category Class and Messaging Preview 10:38

In this lecture, we will refactor Product Category Controller, clean up validation messages and general system message handling

Creating The Edit Category Form Preview 06:05

In this lecture, you will learn how to easily setup the edit category modal.

Setup Route and Controller Method for Edit Category Preview 04:52

In this lecture, you will add a route for editing product category and create a new controller method to save updates.

Setup JavaScript Components Preview 09:47

In this lecture, you will learn how to setup JavaScript component for the project.

Update Category using JQuery Ajax Preview 13:52

In this lecture you will learn how to update specific product category using JQuery Ajax and handle validation and success messages inside the same modal.

Testing, Handling Notification and Wrapping up Edit Category Preview 14:38

In this lecture we shall be testing the edit category functionality, handling notification, adding motion UI components and bug fixes to wrap up the edit category functionality.

Delete Product Category Preview 17:06

In this lecture you will learn how to delete data from catgory table after prompting user for confirmation

Delete Product Category - Part 2 Preview 05:52

In this lecture we handle delete category notification.

Preparing The Create Subcategory Form Preview 05:12

Let's setup things for creating a subcategory.

Setup Model, Route and Controller Method for Subcategory Preview 10:25

In this lecture, you will earn to setup a model to represent the subcategory table, route and controller.

Saving Subcategory to Database Preview 08:09

In this lecture, you will save subcategory to the database using JQuery Ajax.

Displaying Subcategories Preview 06:57

In this lecture you will learn how to display subcategories

Changing Subcategory name and Category It Belongs To Preview 14:19

In this lecture you learn how to setup things in order to allow easy editing of subcategories. You will also be able to change the category a subcategory belongs.

Delete Subcategory and Implement Cascade Delete Preview 05:42

In this lecture you will learn how to easily delete subcategory and implement cascade delete when category is deleted.

Styling Categories and Subcategories Tables Preview 07:02

In this lecture, you will learn how to add basic styles to Categories and Subcategories Views to make things look cleaner.

Create Product - Setup Preview 11:10

In this lecture we start setting up thing for product creation.

Create Product - Onchange Dynamically Populate Subcategories Preview 12:08

In this lecture, we continue from where we left off in the last lecture by adding JavaScript functionality to auto populate subcategories based on selected category.

Create Product - Setup Conclussion Preview 06:08

In this lecture we lecture we finish up create product form.

Create Product Model and Validation Preview 12:36

In this lecture, we create a model for products, validate inputs and image when form is submitted.

Move Image To Specified Location and Save Product To Database Preview 10:28

In this lecture, you will use learn how to use the Upload File class that we created in a previous lecture to move product image to a specific location after which the product is save to the database along with the image path.

Displaying Products Preview 08:52

In this lecture we setup inventory management page, so that we can view and edit created products

Defining Relationships Between Category, Subcategory and Product Preview 09:38

In this lecture, you will learn how to setup one to many and many to one relationships between the Category, subcategory and product model.

Editing a Product Preview 14:18

In this lecture, we setup the route, controller method and form to edit a product.

Deleting a Product Preview 06:28

In this lecture you learn how to delete a product using the functionality we have implemented previously.

Setup Front Store Layout Preview 07:38

In this lecture we setup the basic layout of the front store and subsequently build on that.

Front Store Navigation Preview 14:03

In this lecture we begin building a responsive navigation for the project

Styling The Front Store Navigation Preview 21:33

In this lecture you will add style to the front store navigation.

Front Store Slider With Slick Carousel Preview 11:00

In this lecture you will add slick carousel to the homepage of the front store.

A Quick Look at VueJs and Installing Axios HTTP Client Preview 06:19

In this lecture you will learn about VueJs a lightweight JavaScript framework for building user interfaces, you'll also learn about axios a promised based http client, which we will be using in subsequent lectures.

Setup Featured Products (PHP & VueJs) Preview 09:52

In this lecture we setup things for featured products, we start by updating the database, then creating the route, controller method, VueJS component and axios for grabbing data.

Displaying Featured Products (VueJs) Preview 06:31

In this lecture we display featured products in the front store using a combination of Foundation cards and VueJs.

Applying styles to displayed products Preview 08:35

In this lecture we apply css style to product display card.

Displaying Product Picks (PHP & VueJs) Preview 07:06

In this lecture you learn how to display a different category of products in the home page

Autoload More Products onscroll to Bottom of Page (PHP & VueJs) Preview 13:39

In this lecture you will learn how to program infinite load functionality to load more products from the database on scroll to the bottom of the page using PHP and VueJs

Choosing a Font Pair and Updating Global Style Preview 07:57

In this lecture I will introduce you to a website where you can pick font combination for any web project and we also update front store styles.

Product Details Page - Part 1 (PHP & VueJs) Preview 08:57

In this lecture we add the functionality to display details of a product when a user clicks on the see more button.

Product Details Page - Part 2 (PHP & VueJs) Preview 08:25

This is the second part of product details page, in this lecture e focus on displaying product image, price, description and add to cart button using VueJS.

Product Details Page - Part 3 (PHP & VueJs) Preview 16:06

This is the third and concluding part of product details page, we apply a bit of style.

Displaying Similar Products (PHP & VueJs) Preview 06:39

In this lecture, you will earn how to add the functionality to display similar products in the product details page.

Updating Add To Cart Button (VueJs) Preview 09:02

In this lecture we update the add to cart button to call a VueJs method when clicked and create a module object to hold reusable JavaScript functions.

Creating a Cart Class (PHP) Preview 14:18

In this lecture you will learn how to code the back-end functionality to add an item to cart by building a Cart class.

Adding Items To Cart (PHP & VueJs) Preview 09:50

In this lecture you will learn how to implement add to cart functionality using the class that we created in the previous lecture a combination of JavaScript, Vue and PHP.

Add to Cart Notifcation Preview 05:41

In this lecture you code the notification that displays when a user adds an item to cart.

View Items in Shopping Cart - Part 1 (PHP & VueJs) Preview 16:41

In this lecture you will display the items that has been added in the users cart using VueJs and PHP.

View Items in Shopping Cart - Part 2 (PHP & VueJs) Preview 15:01

This is the second part of the lecture viewing shopping cart items

View Items in Shopping Cart - Part 3 Preview 07:25

Add apply coupon form & cart total, continue shopping and checkout buttons 

Updating Cart Item Quantity - Part 1 (PHP & VueJs) Preview 07:37

In this lecture, you'll learn how to add functionality that allows users to update the quantity of items in their cart

Updating Cart Item Quantity - Part 2 (PHP & VueJs) Preview 13:02

In this lecture, you'll learn how to add functionality that allows users to update the quantity of items in their cart

Remove Item From Cart (PHP & VueJs) Preview 09:42

In this lecture, you'll learn how to program the functionality to allow user remove item from the cart.

Homework 1 Preview 00:53

You very first assignment, time to put your skills to the test.

Setup Registration And Login Components Preview 15:09

In this lecture you will setup registration and login forms, we start with route creation, then controller and finally the views

User Registration Functionality Preview 09:03

In this lecture you will register a user and store the information in the database with PHP OOP 

User Login Functionality Preview 07:13

Lets now program the Functionality to log in a registered user

Authentication Helper Functions Preview 06:02

In this lecture you will learn how to create two very useful functions to help with authentication and then use then to determine which menu to show when a user is logged -in and also to hide register and login page if user is already signed-in

Logout and Style Fix Preview 08:00

In this lecture you learn how to program the logout functionality to while preserving items in the cart and fix some minor CSS bug on the cart on mobile devices

Creating a Stripe Account and Exploring The Stripe Dashboard Preview 08:30

Creating a Stripe Account and Exploring The Stripe Dashboard

Install and Setup Stripe PHP SDK Preview 09:55

Lets pull in stripe PHP SDK with composer and set it up in out project

Setup Stripe Checkout JavaScript Component Preview 13:26

In this lecture you will learn how to setup and configure stripe checkout using JavaScript

Setup Stripe Checkout JavaScript Component - Conclusion Preview 13:06

In this lecture you will gain a practical understanding of how stripe handles users credit card details and the information that is available to developers.

Create a Customer and Charge Credit Card Preview 08:09

In this lecture you will learn how to create a customer and charge their credit Card.

Save Orders and Payment To The Database Preview 14:20

You will learn hot to save orders and payment received to the database

Sending Order Confirmation Email Using Our Custom Template Preview 18:13

In this you will send order confirmation email after successful purchase using the email template setup that we created in a previous lecture.

Tracking Out of Stock Items Preview 08:12

Learn how to prevent users from adding out of stock products to the cart.

Section Overview and Style Fix Preview 03:14

 In this lecture, I'll give a quick overview of things to come into the dashboard and a quick style fix

Building the Dashboard UI Preview 19:34

You add components to the dashboard and apply styles

Querying Data For Dashboard Reporting (Backend Coding) Preview 12:02

Querying Data For Dashboard Reporting (Back-end Coding)

Install chartjs and implement Preview 13:58

In this lecture you use the data from the API created in the last lecture to setup chartjs component for displaying monthly revenue and orders 

Protecting Admin Dashboard With Middleware Preview 09:48

In this lecture you write the functionality to protect the admin dashboard using a middleware that we create

Handling Login Redirection Based on User Role Preview 04:57

In this lecture you code the functionality to auto redirect user to different pages based on role and items in the cart

Assignment 2 & 3 Preview 03:03

You second assignment, lets do it

So Much Revenue Preview 01:50

We made it !!!

Bug Fix - Total Orders Preview 07:41

Setup PayPal Account and Create an App for API Access Preview 06:18

Let's begin this section with PayPal account setup and creating an App that will be used to perform various actions on PayPal API.

Setup JavaScript components to Display Express Checkout Button Preview 12:12

In this lecture you learn how to integrate the PayPal express checkout button display functionality to our existing VueJs code

Create The PayPal Payment - Initial setup Preview 14:16

Lets setup things to create the PayPal payment.

Create The PayPal Payment - Access Token Request using GuzzleHttp Preview 11:05

In order to create a PayPal payment we need an access token, in this lecture lets install GuzzleHttp client and request an access token.

Create The PayPal Payment - Conclusion Preview 13:51

Let now us the access token from the previous lecture to create a PayPal payment

Execute PayPal Payment - Charge Customer Preview 11:42

In this lecture lets now write the server side functionality to charge a PayPal customer

Execute PayPal Payment - Log Payment Details to Database Preview 10:37

In this lecture, we log the details of the transaction to the database.

Alway Refactor, Lets Create a Payable Trait to do Just that Preview 13:17

Refactoring is a must especially when we have code duplication, lets create a Payable Trait to do just that.

Section Overview Preview 02:17

Installing Nodejs 8 and NPM Cleanup Preview 05:53

Lets install Nodejs 8 and cleanup NPM from our project

Migrating from Bower to NPM for Frontend Dependencies Management Preview 05:40

In this lecture you will migrate your frontend dependencies from bower to NPM

Creating NPM Build Commands Preview 05:22

Creating NPM Build Commands

Setting up Webpack Entry Points (SASS & JS) Preview 12:19

In this lecture we setup entry point for webpack

Compilling Assets (SASS & JS) with Webpack Preview 06:53

Lets setup things and compile project sass and JavaScript files

Fixing Broken Zurb Foundation Styles Preview 18:30

Fixing Broken Zurb Foundation Styles

Removing Bower and Gulp Files Preview 01:26

Removing Bower and Gulp Files

Assignment 1: Adding Empty Cart Functionality Preview 10:52

Assignment 2: Displaying Orders (Backend) Preview 30:08

Assignment 2: Displaying Orders (Frontend) Preview 19:29

Assignment 2: Displaying Payment Details Preview 11:56

Assignment 3: Display Products, Categories, Subcategory with Load More - Part 1 Preview 19:36

Solution to Assignment 3: Display Products, Categories, Subcategory with Load More

Assignment 3: Display Products, Categories, Subcategory with Load More - Part 2 Preview 19:25

Solution to Assignment 3: Display Products, Categories, Subcategory with Load More

Assignment 3: Display Products, Categories, Subcategory with Load More - Part 3 Preview 14:19

Solution to Assignment 3: Display Products, Categories, Subcategory with Load More

Assignment 3: Display Products, Categories, Subcategory with Load More - Part 4 Preview 30:02

Solution to Assignment 3: Display Products, Categories, Subcategory with Load More

Deployment Prerequisites Preview 03:47

Lets quickly consider some of the most important prerequisites for deploying the app to production

Deploying the App - Part 1 Preview 20:05

Deploying the PHP MVC app to production

Deploying the App - Part 2 Preview 23:41

Deploying the PHP MVC app to production

Deploying the App - Part 3 Preview 05:37

Deploying the PHP MVC app to production

Download Preview 00:00

How to redeem your $50 Cloudways hosting credit Preview 00:01

Setting up a server on Cloudways and work through Preview 19:37

In this lecture, you will learn how to set up a server on Cloudways and understand some of the core features.

Deploying our application to Cloudways via Git Preview 26:38