Basic PHP framework providing a minimal implementation of the MVC pattern.

Why did I do this?

I have been using Laravel to do web development on side-projects for some time and wanted to get a deeper understanding of the inner workings of web frameworks. Tools like Ruby On Rails, Laravel or Django provide a lot of utilities to ease development, but even if it feels like magic sometimes, it's not!

I built a basic router, based on the MVC architecture where controller are associated with URL patterns. For rendering views, I integrated the templating library Plates.

To test the framework, I used it to build a small project, Maestro.

What I learned

The kind of projects I did with Laravel did not require complex object-oriented architecture, so it's a caracteristic of PHP I did not explore much. I learned the OOP mechanisms available in PHP, but also how powerful and flexible it can be as a dynamic language. Processing web/http request is pretty much a lot of string parsing, so being able to instantiate objects or call functions at runtime from arbitrary string is really interesting!