Download the PHP package zolta/http without Composer

On this page you can find all versions of the php package zolta/http. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package http

Zolta HTTP

Declarative APIs. Zero boilerplate.

Define your entire HTTP pipeline — routing, validation, service binding, authorization, and response shaping — with PHP 8 attributes. Your controller methods stay empty. The framework does the wiring.

First-class Laravel (Symfony support coming soon) adapters. OpenAPI generation from the same attributes. Under 2ms pipeline overhead.


Why Zolta HTTP?

The problem

PHP frameworks give you routing and controllers, but the plumbing between "HTTP request" and "business logic" is still manual. Every endpoint repeats the same pattern: validate input → map to DTO → call service → transform result → shape response. This boilerplate multiplies across hundreds of endpoints, and every copy is a place for inconsistencies to hide.

What Zolta HTTP does differently

Approach How it works Trade-off
Laravel Resource Controllers Convention-based CRUD + manual service calls Still wiring validation, DTOs, responses by hand
Symfony API Platform Schema-driven REST/GraphQL generation Heavy, opinionated, hard to customize beyond CRUD
Spatie Query Builder Query parameter parsing for Eloquent Read-only filtering, no full pipeline
Zolta HTTP Full pipeline declared in attributes — routing to response True zero-boilerplate endpoints, dual framework support

The key insight: your controller method shouldn't contain the pipeline — it should declare it. Five attributes replace what typically takes 30-50 lines of wiring code per endpoint.

Who is this for?

Install

Laravel auto-discovers the service provider. For Symfony, register the bundle in config/bundles.php.

Identity token introspection (Laravel)

v2.1.0 adds optional remote Identity token validation. Publish the configuration, set IDENTITY_API_URL, IDENTITY_CLIENT_ID, and IDENTITY_CLIENT_SECRET, then protect a route with identity.introspect:

See the Identity module documentation for sandbox connections, permission checks, caching, and webhook signature verification.


The pipeline — from request to response

Every attribute-routed request flows through a deterministic pipeline:

Each step is independently replaceable. The entire pipeline adds < 2ms overhead on warm requests.


Quick start

1. Define a controller

Controllers are declaration sites, not logic containers. Each method declares what should happen via attributes — the framework handles how:

2. Define a form request

Authenticated actors, tenant identifiers, and other server-owned values belong in trustedData(). They are merged after validation and always replace client input with the same key:

Never accept an actor or tenant identifier from query parameters or the request body. The former withData() hook remains available as a deprecated migration bridge and is treated with the same trusted precedence.

3. Define an input DTO

4. Define a resource

Attribute reference

Attribute Target Purpose
#[Route] Class / Method Defines path, HTTP methods, middleware, auth, authorization
#[Request] Class / Method Binds a form request class and optional input DTO
#[Service] Class / Method Binds a service class, success message, and HTTP status
#[Response] Class / Method Binds a resource class for response transformation
#[Doc] Class / Method OpenAPI documentation metadata (summary, description, tags)
#[View] Class / Method Server-side view rendering (view name, engine)

Authorization

Configure the AuthorizationMatrix to map abilities to permissions, with multi-path extraction from your user model:

Then reference abilities in your route attribute — authorization is checked before the service is invoked:

Response format

All responses follow a consistent envelope — success, error, and debug states share the same shape:

Exceptions are automatically normalized: domain exceptions (404, 409, 422) pass through with context; unexpected errors become safe 500 responses with debug trace in development mode.


What else is included

OpenAPI generation from attributes

The same #[Route], #[Request], #[Response], and #[Doc] attributes that drive runtime behavior also generate OpenAPI 3.0 specifications. No separate schema files to maintain — your docs always match your code.

Multi-tier reflection caching

Route metadata resolution uses a 3-tier cache: runtime memory → persistent store (Laravel Cache / APCu) → reflection fallback. Cold-start resolves once, then subsequent requests hit the cache at < 0.5ms.

Route caching with manifest tracking

AttributeRouteCache compiles routes into bootstrap/cache/attribute_routes.php with file-level tracking — only changed controllers trigger rebuilds.

Exception handling

The HandlesApiExceptions trait normalizes all exceptions into the standard response envelope. Domain exceptions (ValidationException, NotFoundException, ConflictException) carry structured error data; framework exceptions are safely wrapped.

File upload support

UploadedFileDTO provides a framework-neutral representation with clientOriginalName, clientMimeType, size, tmpPath, and error — works identically on Laravel and Symfony.


Performance

Benchmarked on a real application (Laravel 12, PHP 8.3, SQLite):

Pipeline step Time (warm)
RouteMetadataResolver 1.3–1.9ms
RouteConfigValidator < 0.01ms
ServiceInvoker overhead < 0.5ms
ResourceTransformer 0.5–0.7ms
ResponseFactory 0.5–0.6ms
Total HTTP pipeline overhead < 2ms

The rest of your request time is your application logic — Eloquent queries, external calls, business rules. The transport layer stays invisible.


Dual framework support

Every module has independent Laravel adapter (Symfony support is coming soon). The same controller code runs on either framework without modification.:

Feature Laravel Symfony
Attribute routing coming soon
Form request validation coming soon
DTO mapping coming soon
Authorization coming soon
Exception handling coming soon
Response shaping coming soon
View rendering coming soon
OpenAPI generation coming soon
Route caching coming soon
Reflection caching coming soon

Write your controllers once, deploy on either framework.


QA

146 tests, 323 assertions covering routing attributes, authorization matrix, request mapping, response contracts, exception handling, caching, and security.


Part of the Zolta Ecosystem

Zolta HTTP is the transport layer — it wires HTTP to your application through clean attributes:

When used together: a request arrives → HTTP resolves the pipeline via attributes → Forge hydrates the command with validated VOs → CQRS dispatches through the bus, captures events, wraps transactions → HTTP transforms and returns the response. All of this happens with < 5ms of package overhead and zero manual wiring.

Package Layer Link
zolta/forge Domain packages/forge
zolta/cqrs Application packages/cqrs
zolta/http Transport You are here

Documentation

Full documentation is available in the docs/ directory, organized for serving via Nuxt Content.

License

MIT © 2026 Redouane Taleb


All versions of http with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
psr/container Version ^2.0
symfony/process Version ^7.3
symfony/serializer Version ^7.3
symfony/property-access Version ^7.3
symfony/property-info Version ^7.3
zolta/forge Version ^1.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package zolta/http contains the following files

Loading the files please wait ...