Build a real example Web application from scratch with PHP 8 and MySQL
What you will learn
Build a real-world, secure and modern vanilla PHP application
Best Programming Practices with clean Software Architecture
Building a complete application from A to Z
Object Oriented Programming (OOP)
MVC architecture
The Service layer pattern (where the business logic of your application lives)
Usage of a Dependency Manager “Composer” and the installation of packages
Symfony Mailer, Dotenv, Gravatar and Templating components
The important features of PHP 8 and 8.1
How to quickly use a modern responsive CSS framework (e.g. Materialize) by creating and loading it into a PHP Composer package and the magic `post-install-cmd`
PHP Unit tests
Description
Learn how to build a robust and reusable PHP Web application with MySQL from scratch.
Step-by-step, you will build a complete PHP 8 framework, and later in the course, we will cover some great 3rd-party packages we will include in our project (you will also learn how to send emails efficiently with the Symfony Mailing package).
The screencast videos literally cover everything (nothing is hidden!), giving you the opportunity to understand and follow the whole evolution of the Web application.
You will learn how to build a modern, clean and flexible framework following the best coding practices and PHP standard recommendations (PSR) allowing you to reuse it easily for your next SaaS.
‘;
}
});
At the end of the course, you will be confident to build any kind of real-world Web application for your next business idea or to take your freelance career to the next level! You will also be able to implement your own unique ideas and concepts from the codebase of this course.
Finally, once you subscribe to this course, I will do my best to answer your questions within a few hours for any of your questions. I know how challenging it can be to build a whole Web application and I want you to succeed in building the web application you want.
Introduction
Introduction
Part 1 – Structure of the framework
Structure and fondation of our app
Kernel, the URL router/dispatcher
Architecture. Views and Controllers
Building the user sign-in/sign-up flows
Submit form data – Manage the submission
User Model and saving user data
Setup project on a local PHP server. Let’s make it ready for the new move
Setup & Rewrite the URLs
Setup & Rewrite the URLs
Use database, session, and password hashing
Use database and session for signup form
How to hash user password efficiently with PHP
User Authentication, Sign In and Sign Out
User Authentication
User Sign Out
User Sign In
Create and validate the user edit form
Create user edit form
Validate and save the edit form
Edit password form
User edit password form
Frontend & Style
Prepare the frontend of our web app
Create materialize CSS for packagist
Application layout
Style/CSS enhancements
Security Enhancement (good practice)
Security – Ask current password when users update their password
Payment Controller
Payment Controller
Implement the Payment Controller
Create Payment Model/Service
Add Payment Form
Update and Save Payment Details
Allow users to create items
Prepare & Create items table
Create Items Model and Service
Implement Items to controller and view
Enhancing Item form
Minor cleanups on item form
Show the user item
Add a purchase PayPal button
Display item page link to user
Improve the Web app
Improve top-menu bar
Let’s improve a few things
Prevent users to create an item without a payment method set
Symfony Templating component
Use Symfony Templating component
Handle 404 Page
Handle 404 Not Found Page from the app router
Fix menu on not found page
About and Contact forms
About / Contact form page
Git your project
Git Usage. Commit your project
Miscellaneous
Composer json – Config settings
Design Enhancements
Send greeting email to your new users
Host your Web Application
Host your Web Application
Conclusion – There is more!
Last Minute cleanup/refactoring and commits
Beyond what we have built – Suggestions for improvements
Extra – Unit Testing
Introduction to unit tests with PHPUnit