BOOMER

A PHP MVC Framework from Scratch.
No Libraries. No Dependencies. Just Pure PHP.

ABOUT

Boomer PHP MVC is an Framework made by 「 Shawn D'silva 」to learn PHP and core web development and software engineering concepts like Object Oriented programming, Model-View-Controller architecture, AJAX programming etc

Without the aid of a pre-existing framework like Laravel, or any external packages

BOOMER is built with the classic Linux, Apache, MySQL, PHP stack inside Docker containers on an Ubuntu host

On the Front-End BOOMER uses JQuery, SASS and CSS3 FlexBox with AJAX calls wherever required, The CSS is all custom with no Bootstrap etc used

FEATURES

Boomer PHP MVC implements most common sense Web Framework features from scratch, like a Router, Middlewares, Input Validation, SQL Query Builder and Sessions based Authentication

To demonstrate these features, this demo website is structured as a blogging platform, supporting multiple users, who can Create, View, Edit and Delete their own Blog posts, Comment on other's blog posts, edit & delete said comments, and customize their own user profile with a bio and a display picture

These operations take place in a standard page based form, or using AJAX to update content without a page refresh

Create an account to demo its features, or Sign In if you already have one.

MVC Architecture

Core Business Logic is encapsulated in a series of Controllers, Database interactions in Models and Front-End related functions in Views

Router

A parameterized router that abstracts the resource from the URI that the user enters, and provides the values of any parameter specified to a route's respective controller

QueryBuilder

A safe Query Builder for MySQL that uses PDO under the hood, enabling developers to write legible, modular SQL queries instead of raw SQL

Authentication

Uses Sessions for persistence, with user session data stored in DB and only session ID stored in cookie. Also stores user passwords securely hashed in the database

Input Validation

All User input is validated for correctness according to the developers needs and sanitized from malicious attempts at code injection

MiddleWare

Middleware can be applied to any route, for any processing the app may require prior to being passed on to its respective controller