# daveh/php-mvc

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/daveh-php-mvc).**

815 stars · 310 forks · PHP · mit

## Links

- GitHub: https://github.com/daveh/php-mvc
- Homepage: https://davehollingworth.com/courses/php-mvc/
- awesome-repositories: https://awesome-repositories.com/repository/daveh-php-mvc.md

## Topics

`mvc-framework` `php` `php-mvc`

## Description

This project is a lightweight PHP framework designed for building web applications using the model-view-controller architectural pattern. It provides a structured environment that separates business logic, data management, and user interface presentation into distinct layers to improve code maintainability.

The framework utilizes a front-controller to intercept all incoming web traffic, routing requests to specific controller actions based on defined URL patterns. It incorporates middleware-style request interception, allowing for the execution of custom logic such as authentication, security filtering, or data preparation at various stages of the request lifecycle.

Beyond its core routing and structural capabilities, the framework includes tools for managing database interactions through abstracted data access layers and rendering dynamic web pages using template-based view generation. These features collectively support the development of organized, server-side web applications.

## Tags

### Programming Languages & Runtimes

- [MVC Implementations](https://awesome-repositories.com/f/programming-languages-runtimes/language-ecosystems-tooling/php-application-frameworks/mvc-implementations.md) — Provides a lightweight framework for building web applications using the model-view-controller architectural pattern.

### Software Engineering & Architecture

- [Model-View-Controller Patterns](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/model-view-controller-patterns.md) — Organizes application logic into distinct model, view, and controller layers to improve maintainability and separation of concerns.
- [Database Abstraction Layers](https://awesome-repositories.com/f/software-engineering-architecture/database-abstraction-layers.md) — Provides structured interfaces for database interactions to decouple business logic from specific storage implementations.
- [Domain Data Presentation Layers](https://awesome-repositories.com/f/software-engineering-architecture/logic-and-presentation-separation/domain-data-presentation-layers.md) — Structures data access through models to isolate business logic from the presentation layer. ([source](https://github.com/daveh/php-mvc#readme))
- [Request Middleware](https://awesome-repositories.com/f/software-engineering-architecture/request-middleware.md) — Supports middleware-style request interception for executing custom logic like security filtering and authentication during the request lifecycle.

### Web Development

- [PHP Routing Libraries](https://awesome-repositories.com/f/web-development/php-routing-libraries.md) — Provides routing capabilities to map incoming URL paths to specific controller actions within the PHP runtime.
- [Request Routing](https://awesome-repositories.com/f/web-development/request-routing.md) — Directs incoming web requests to specific controller actions based on defined URL patterns. ([source](https://github.com/daveh/php-mvc#readme))
- [Front-Controller Patterns](https://awesome-repositories.com/f/web-development/request-routing/front-controller-patterns.md) — Implements a central front-controller to intercept and route all incoming web traffic to appropriate controller actions.
- [Server-Side Frameworks](https://awesome-repositories.com/f/web-development/server-side-frameworks.md) — Offers a comprehensive suite of tools for routing, database management, and server-side rendering.
- [Dynamic View Rendering](https://awesome-repositories.com/f/web-development/dynamic-view-rendering.md) — Generates dynamic web pages by injecting application data into reusable server-side markup templates.

### Part of an Awesome List

- [Request Interception](https://awesome-repositories.com/f/awesome-lists/devtools/logging-and-diagnostics/request-interception.md) — Provides hooks to execute custom logic before or after controller actions for security and request filtering. ([source](https://github.com/daveh/php-mvc#readme))

### Content Management & Publishing

- [Dynamic Page Renderings](https://awesome-repositories.com/f/content-management-publishing/static-page-rendering/dynamic-page-renderings.md) — Renders interactive web pages at request time by transforming data through reusable templates. ([source](https://github.com/daveh/php-mvc#readme))

### Networking & Communication

- [Application Middleware](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/request-processing-architectures/request-processing/application-middleware.md) — Executes custom logic during the request-response lifecycle to handle cross-cutting concerns like authentication.

### Security & Cryptography

- [Web Application](https://awesome-repositories.com/f/security-cryptography/security/application-and-web/web-application.md) — Structures web applications by separating business logic, data management, and presentation into distinct layers.

### User Interface & Experience

- [Server-Side Template Engines](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/server-side-rendering-engines/server-side-template-engines.md) — Injects dynamic application data into server-side templates to generate structured HTML responses.
