I will assume that you have testing environment set up (nginx/apache and database) and running. So the first thing we need to is to separate logic part of the framework from the html part. To do so, we will create two folders in the root directory of the project. It will look something like this:
root/ index.php application/ #logic goes here public/ #design goes here
MVC stands for Model-View-Controller which tells us how the backend distributes tasks. Let's take a look at what it looks like in practice.
1. user navigates browser to somewebsite.com/forum/introductions 2. router on ourwebsite.com recognizes the route /forum/introductions as one of it's own that happens to be governed by forum controller 3. router calls forum controller and passes the parameters (in this case introductions) 4. controller creates the model Introductions (which contains list of all introductory threads) and passes it to a view for a user to see
So from this example we can conclude that the core part of the framework consists of 4 parts (router, controller, model and view) so let's create them. Oh yeah, we will need two more files; one that contains a list of routes and another, let's call it config file, to store defaults.
Now lets add something to the
public/ folder so we could actually see something when we test it. Actually let's structure it as well so we will have an easier time customizing it later. After all that our structure should look like this:
root/ index.php application/ config/ config.php routes.php core/ Controller.php Model.php Router.php View.php public/ components/ errors/ 404.php 500.php layouts/ default.php views/
Now we are finally ready to do some coding.