This is a personal project I made to teach myself how MVC works so I can use it for future projects. I did it by taking portions of code from different PHP courses I took (see Acknowledgements below). Some of the topics I learnt by doing this:
- MVC pattern and OOP
- WTH is a Router and how does that work?
- How to use regular expressions
- Handling databases with PDO
- Download as .zip or clone this repo using
git clone https://github.com/crjoseabraham/php-mvc.git
- Import the
data/todo_db.sql
file to phpMyAdmin - Install composer
https://getcomposer.org/download/ - Run
composer install
- Start your Apache server and go to http://localhost/php-basic-mvc
You're done :)
As most MVC frameworks, this project flows through public/index.php
and loads the correspondant page base on the URL
php-mvc/
config/ # Database credentials, utility functions, constants used frequently
data/ # SQL database file
public/ # Accessible files. What final users see
css/ # Compiled css file
js/ # Compiled javascript file
index.php # Starting point for the entire app
src/ # Application source code
app/ # Router class, routes.php
controllers/ # Controller classes
models/ # Model classes
views/ # Views
.htaccess # Make src/ unaccessible for users
vendor/ # Composer files, autoloader !ignored
.gitignore # Files/folders to be ignored by version control
.htaccess # Redirect everything to public/ folder
composer.json # Composer dependency file
I did this by making a combination of what I learnt from some online PHP courses I took
- The PHP Practitioner by Laracasts
- Write PHP like a Pro by Dave Hollingworth
- Object Oriented PHP & MVC by Brad Traversy