Download the PHP package seatplus/esi-schema without Composer

On this page you can find all versions of the php package seatplus/esi-schema. 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 esi-schema

seatplus/esi-schema

Typed ESI schema for PHP. Every EVE Online ESI endpoint has its own generated class with typed pre-call metadata and a typed call method — no magic strings, no array guesswork.

Generated from the ESI OpenAPI spec (compatibility_date=2025-12-16). Zero runtime dependencies.


Installation

Requirements: PHP 8.3+


Quick Start

Two call styles are available. Choose based on context.

Option A — Direct static call (recommended for jobs and services)

Each ESI endpoint has its own generated class under src/Resources/{Tag}/:

Option B — Fluent API (convenient for interactive use and esi-client)

A generated {Tag}Resource wrapper class exists for every tag. Inject the transport once and call methods fluently:

Each {Tag}Resource method is a thin wrapper — it simply calls {OperationClass}::execute($this->transport, ...). Pre-call metadata and typed constants remain on the per-route class.

Namespace table

Resource classes are grouped by ESI tag into 33 subfolders, each with a corresponding tag-group wrapper:

Subfolder Example class Tag wrapper
Resources\Alliance GetAlliancesAllianceId AllianceResource
Resources\Assets GetCharactersCharacterIdAssets AssetsResource
Resources\Character GetCharactersCharacterId CharacterResource
Resources\Corporation GetCorporationsCorporationId CorporationResource
Resources\FactionWarfare GetFwStats FactionWarfareResource
Resources\Market GetMarketsPrices MarketResource
Resources\Universe GetUniverseTypesTypeId UniverseResource
Resources\Wallet GetCharactersCharacterIdWallet WalletResource
Resources\Skills GetCharactersCharacterIdSkills SkillsResource
… (33 total)

Per-route classes: Seatplus\EsiSchema\Resources\{Tag}\{PascalCaseOperationId}
Tag wrappers: Seatplus\EsiSchema\Resources\{Tag}Resource (e.g. Seatplus\EsiSchema\Resources\AssetsResource)

eveapi integration pattern

The intended use in queue jobs:


Implementing a Transport

All resource classes depend only on EsiTransportInterface. Implement it to connect any HTTP client:

The reference implementation is seatplus/esi-client, which handles OAuth, RFC 7234 caching, error-limit tracking, and retry logic.


Architecture

Key contracts:

Class / Interface Purpose
EsiOperationInterface Contract for resource classes: static meta(): OperationMeta
EsiTransportInterface Contract for HTTP transport: invoke() → EsiRawResponse
EsiRawResponse Raw transport response: data + HTTP metadata + rate-limit state
EsiCursor Cursor pagination tokens ($before, $after)
OperationMeta Typed pre-call DTO: 7 readonly properties (no methods)
AbstractEsiDto Base DTO for single-object responses: $isCachedLoad, $pages
EsiResult<T> Typed wrapper for array/paginated endpoints
{Tag}Resource Fluent wrapper — stores transport, methods delegate to per-route statics

Design Decisions

1. Static resource classes — one class per ESI endpoint

Each ESI endpoint is represented as a pure static class (final class) rather than an instance method on a tag-grouped resource. This means:

2. Typed public constants for metadata

Each generated class exposes 7 individually typed public const declarations:

meta() simply wraps these into new OperationMeta(...). The constants are also directly accessible without any method call or allocation.

3. OperationMeta as a pure typed DTO

OperationMeta is a final readonly class with only typed constructor properties — no methods. Access its values as $meta->requiredScope, $meta->cacheAge, etc.

Token validation logic is not in this library — tokenSatisfies() was removed. Scope checks belong in eveapi, where the token models live.

4. Tag-based subfolders

The 208 resource classes live in src/Resources/{Tag}/ (33 subfolders), matching ESI's tag taxonomy:

5. Zero runtime dependencies

composer.json has no require entries (only require-dev for symfony/yaml used by the generator). The published library is pure PHP 8.3.

6. EsiTransportInterface as the sole injection boundary

All network I/O is delegated to a single invoke() method. The library knows nothing about Guzzle, cURL, OAuth tokens, or HTTP caching. Tests mock this interface — no network required.

7. Versioning tied to ESI compatibility_date

Library major ESI compatibility_date Composer
1.x 2025-12-16 ^1.0

When CCP introduces a new breaking date and generated types change incompatibly, a new major (2.x) is released.


Versioning

Branch / Major ESI Compatibility Date Composer constraint
1.x 2025-12-16 ^1.0

Regenerating

The generator reads the live OAS3 spec from https://esi.evetech.net/meta/openapi.yaml?compatibility_date=2025-12-16.

It emits:

Do not manually edit generated files. Changes are overwritten on next regeneration. To change generated output, edit bin/generate.php.


Testing


Contributing

See ARCHITECTURE.md for detailed design rationale.


All versions of esi-schema with dependencies

PHP Build Version
Package Version
Requires php Version ^8.3
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 seatplus/esi-schema contains the following files

Loading the files please wait ...