# patricklouys/no-framework-tutorial

**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/patricklouys-no-framework-tutorial).**

1,556 stars · 188 forks · MIT

## Links

- GitHub: https://github.com/PatrickLouys/no-framework-tutorial
- awesome-repositories: https://awesome-repositories.com/repository/patricklouys-no-framework-tutorial.md

## Topics

`clean-code` `dependency-injection` `framework-agnostic` `php` `solid` `tutorial`

## Description

This project is an educational guide focused on building modular web applications using native PHP features. It demonstrates how to construct a functional application architecture from the ground up without relying on external third-party frameworks.

The guide centers on implementing core architectural patterns, including a request router that maps incoming HTTP paths to specific controller logic and a dependency injection container that manages object lifecycles and class requirements. By decoupling components through automated dependency resolution, the project emphasizes maintainability and testability in custom software design.

The implementation covers essential web application mechanics such as a front-controller for request handling, a template engine for separating presentation logic from business code, and a centralized error handling layer to manage runtime exceptions. These components work together to provide a structured approach to dynamic content generation and system feedback.

## Tags

### Programming Languages & Runtimes

- [PHP Application Frameworks](https://awesome-repositories.com/f/programming-languages-runtimes/language-ecosystems-tooling/php-application-frameworks.md) — Demonstrates the construction of modular web application architectures using native language features.

### Software Engineering & Architecture

- [Dependency Injection Containers](https://awesome-repositories.com/f/software-engineering-architecture/dependency-injection-containers.md) — Provides a central container for managing object lifecycles and dependency resolution.
- [Dependency Injection Providers](https://awesome-repositories.com/f/software-engineering-architecture/dependency-injection-providers.md) — Implements dependency injection to decouple components and manage service lifecycles.
- [Dependency Injection](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/dependency-injection.md) — Automates the provision of class dependencies to decouple components and improve testability. ([source](https://github.com/patricklouys/no-framework-tutorial#readme))
- [Component-Based Dependency Management](https://awesome-repositories.com/f/software-engineering-architecture/dependency-injection-providers/component-based-dependency-management.md) — Manages complex application dependencies through automated injection to simplify system configuration. ([source](https://github.com/patricklouys/no-framework-tutorial#readme))
- [Global Exception Handlers](https://awesome-repositories.com/f/software-engineering-architecture/global-exception-handlers.md) — Provides a centralized layer for intercepting and formatting application-wide runtime exceptions.
- [Service-Layer Architectures](https://awesome-repositories.com/f/software-engineering-architecture/service-layer-architectures.md) — Organizes application logic into decoupled services to separate business operations from presentation.

### Web Development

- [Request Routing](https://awesome-repositories.com/f/web-development/request-routing.md) — Maps incoming HTTP request paths to specific controller logic for dynamic content delivery. ([source](https://github.com/patricklouys/no-framework-tutorial#readme))
- [Front-Controller Patterns](https://awesome-repositories.com/f/web-development/request-routing/front-controller-patterns.md) — Implements a single entry point pattern to centralize request handling and dispatching logic.
- [Web Request Routers](https://awesome-repositories.com/f/web-development/web-request-routers.md) — Implements a custom request router that maps incoming HTTP paths to specific controller logic without external framework dependencies.
- [PHP Error-to-Exception Converters](https://awesome-repositories.com/f/web-development/global-error-handlers/php-error-to-exception-converters.md) — Provides patterns for converting runtime errors into exceptions to protect sensitive system information.
- [HTML Content Renderers](https://awesome-repositories.com/f/web-development/html-content-renderers.md) — Renders dynamic HTML content by combining application data with modular templates. ([source](https://github.com/patricklouys/no-framework-tutorial#readme))
- [Custom Web Routes](https://awesome-repositories.com/f/web-development/routing-systems/routing/route-definition-strategies/custom-web-routes.md) — Implements custom path parsing logic to route web traffic without external framework dependencies.

### DevOps & Infrastructure

- [Error Tracking and Exception Handling](https://awesome-repositories.com/f/devops-infrastructure/devops/operational-reliability/error-tracking-and-exception-handling.md) — Intercepts and processes runtime exceptions to provide consistent user feedback during failures. ([source](https://github.com/patricklouys/no-framework-tutorial#readme))

### User Interface & Experience

- [HTML Template Renderers](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/server-side-rendering-engines/html-template-renderers.md) — Provides a template engine that merges dynamic application data with HTML layout files to separate presentation from business logic.
- [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) — Ships a server-side template engine for generating dynamic HTML responses.
