TetherPHP

TetherPHP

Build readable PHP applications with an explicit Action-Domain-Responder structure

Open Source

Gallery

About TetherPHP

TetherPHP is an open-source PHP framework built around the Action-Domain-Responder pattern. It is designed for developers who want to follow a web request from route to response by reading ordinary application code. Each route has an Action, the Action calls a Domain that stays independent of HTTP, and the result goes to a Responder that decides what the view receives. This gives an application a consistent path through named classes instead of hiding important behavior behind a large amount of framework machinery. The project emphasizes code that a new teammate or an AI coding agent can inspect without first learning unwritten conventions.

The structure is deliberately explicit. Routes show where requests go, middleware configuration shows what wraps them, and dependencies are assembled visibly rather than pulled from a dependency injection container. A Services class lists what the application is made of, the public entry point builds those services, and Actions receive what they need to pass into Domains. Files follow predictable names and locations, with matching Action, Domain, Result, Responder, and view components for a feature. The framework encourages one class per route instead of placing several route methods in one controller, keeping the path through an application narrow and traceable. The skeleton separates Actions, console Commands, Domains, Domain Results, Responders, Views, public files, routes, storage, and tests into visible directories. Unit tests can exercise a Domain alone, while feature tests pass through the Kernel. This mirrors the division between business logic and HTTP concerns that the ADR structure is intended to preserve.

TetherPHP ships the fundamental web pieces rather than a full stack of preferred libraries. Its stated scope includes routing, requests, responses, middleware, and a console. It does not bundle an ORM, query builder, validation layer, or service container. Database access, validation, templating choices, queues, and other concerns can be added as packages. CSRF protection and HTTP method overriding are supplied as middleware but must be enabled in the middleware routes file, so an API can omit them and start without a session. Tailwind CSS is preconfigured in the skeleton, and application logs are written under the storage directory.

The command line tooling is a central part of the framework. Generator commands can create an individual Action, a complete feature, or a CRUD resource with the matching Actions, Domains, Responders, Results, and views. Introspection commands list registered routes, explain how a URL resolves, inspect application details, and produce machine-readable context in JSON for tools and agents. The console also runs the test suite and reports its available commands. An explain command can resolve a particular URL the same way the application will, while the routes command reports registered routes and their middleware. A context command outputs JSON specifically so external tools and agents can read the application structure. This is meant to help both people and coding agents understand the application they are modifying, not merely save typing during initial scaffolding.

TetherPHP is a good fit for developers who prefer clear conventions, a small core, and direct control over which supporting packages enter a project. Its charter prioritizes human-readable code, agent-friendly structure, visible wiring, one obvious way to perform common tasks, composable packages, and first-class developer tools. That opinionated design reduces ambiguity but will feel restrictive to teams that want several accepted architectural styles. The minimal core also means developers must choose and integrate capabilities that larger frameworks include by default. It requires PHP 8.5 or higher and Composer, and projects can run through PHP's built-in server or the supplied Docker setup.

The framework is MIT licensed and distributed through Packagist as a Composer project, so there is no purchase or hosted service required. A new project can be created with Composer, followed by copying the example environment file and starting the development server. The official documentation covers the ADR model, requirements, usage, naming, routing, requests, responders, middleware, services, CRUD building, and the console. The project is still in early development and remains below version 1.0, while its own documentation says features and guidance are actively being developed. It is therefore most appropriate for developers comfortable evaluating a young framework and filling in some infrastructure through packages.

Key Features

  • Action-Domain-Responder application structure
  • Explicit dependency assembly
  • Routing and middleware core
  • Feature and CRUD generators
  • Application introspection commands
  • Machine-readable agent context

Pros & Cons

What we like

  • Makes request flow easy to trace
  • Keeps the framework core deliberately small
  • Provides generators and introspection tools
  • Uses a permissive MIT license

Room for improvement

  • Requires PHP 8.5 or higher
  • Project is still in early development
  • Core omits ORM and validation layers
  • Smaller ecosystem than established PHP frameworks

Frequently Asked Questions

What is TetherPHP?
TetherPHP is a small PHP framework based on the Action-Domain-Responder pattern. It organizes each route around an Action, an HTTP-independent Domain, and a Responder so the request path stays visible in code.
What does TetherPHP include?
The core includes routing, requests, responses, middleware, and command line tooling. It also supplies generators and introspection commands, while database layers, validation, templating, and queues are left to external packages.
What does TetherPHP require?
TetherPHP requires PHP 8.5 or higher and Composer. A project can run with PHP's built-in development server or through the provided Docker setup.
Is TetherPHP free and open source?
Yes. TetherPHP is released under the MIT license and is available as a Composer project through Packagist. The project is still in early development and its documentation is actively expanding.

Best For

Building explicit PHP web applicationsCreating agent-readable application structuresScaffolding consistent CRUD featuresTracing requests through unfamiliar codebases

Featured in

Alternatives to TetherPHP

Reviews (0)

No reviews yet

Be the first to share your experience with TetherPHP

Sign in to write a review

Badge builder

Add TetherPHP to your website

Choose a badge style and size, preview it here, then copy the generated HTML. Badge images are self-contained SVGs and do not require an external script.

TetherPHP badge preview
<a href="https://toolindex.net/tools/tetherphp?ref=badge" target="_blank" rel="noopener">
  <img src="https://toolindex.net/badge/tetherphp/medium.svg" alt="TetherPHP - Listed on Tool Index" width="180" height="50" />
</a>

How to use the badge

  1. 1. Pick the style, size, and theme that fit your layout.
  2. 2. Copy the generated HTML from the code block.
  3. 3. Paste it into your footer, homepage, or press page.

Standard badge available

The standard listing badge is available now. Score and circle badges are limited to tools currently ranked in the top 10 of a category.

Badge clicks return visitors to this profile with a referral tag so the source remains identifiable.