Home Documentation GitHub Support

Basic MVC concepts

Model-View-Controller (MVC) is an architectural pattern that separates an application into three main logical components: the model, the view, and the controller. Each of these components are built to handle specific development aspects of an application. MVC is one of the most frequently used industry-standard development pattern, and Glowie was built on top of it.

  • The model corresponds to all the data-related logic that the user works with (see Models).

  • The view is used for all the UI logic of the application. Basically, the display of your application data (see Views).

  • The controller acts as a "glue" between your application model and views, besides handling user requests and processing business logic (see Controllers).

The application flow

The following diagram illustrates the basics of a Glowie application flow.

At its core, after the user types in an URL from your server, the Request is sent to Glowie Router. If a matching route is found and correctly validated, the request is sent to the next step. If there are no matching routes, a 404 Response with a Not Found error is thrown.

Now, if the matching route is protected by a Middleware, the request will be handled by it. If the middleware validation is successful, the request is sent to the Controller. Otherwise, a 403 Response with a Forbidden error is thrown. If the route is not protected, this step is skipped.

In the Controller, the application business logic will be applied and a Response will be sent back to the user. In this step, your application can also interact with a Model or View.