PHPackages                             michaelcooke/orthrus - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. michaelcooke/orthrus

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

michaelcooke/orthrus
====================

A simple opinionated implementation of ESI for Laravel

v1.1.0(8y ago)4303[2 issues](https://github.com/michaelcooke/orthrus/issues)MITPHPPHP ^7.1.3

Since Mar 16Pushed 8y ago4 watchersCompare

[ Source](https://github.com/michaelcooke/orthrus)[ Packagist](https://packagist.org/packages/michaelcooke/orthrus)[ RSS](/packages/michaelcooke-orthrus/feed)WikiDiscussions develop Synced 3d ago

READMEChangelog (2)Dependencies (2)Versions (4)Used By (0)

Orthrus
=======

[](#orthrus)

Orthrus is a simple opinionated implementation of ESI for Laravel that provides an easy to use interface for all ESI endpoints, delivering original JSON responses in easily accessible Eloquent collections.

Installing Orthrus
------------------

[](#installing-orthrus)

### Require Orthrus via Composer

[](#require-orthrus-via-composer)

Simply require Orthrus through Composer to pull the package into your project.

```
composer require michaelcooke/orthrus

```

### Configure Eseye

[](#configure-eseye)

Orthrus depends on [Eseye](https://github.com/eveseat/eseye) to take care of caching, logging, and making ESI requests that Orthrus builds up. Configuring Eseye may be done through your `.env` configuration file, making switching between ESI application details as well as caching and logging mechanisms between production and development environments easy.

Include the following in your `.env` configuration file and add your ESI application client id and key. In addition, you may specify a refresh token to use for all Orthrus ESI calls by default.

```
ESEYE_CLIENT_ID=
ESEYE_SECRET_KEY=
ESEYE_REFRESH_TOKEN=
ESEYE_DATASOURCE=tranquility
ESEYE_CACHE=

```

`ESEYE_DATASOURCE` may be `tranquility` or `singularity`. `ESEYE_CACHE` may be `file`, `redis` or `memcached`, and will attempt to use default configuration options where applicable.

Using Orthrus
-------------

[](#using-orthrus)

Accessing ESI endpoints through Orthrus is easily done with a natural syntax while adhering closely to the verbage of the ESI spec. An easy-to-use `ESI` facade is also provided, making ESI calls dead-simple.

### Making ESI Calls

[](#making-esi-calls)

Orthrus's syntax is straight-forward and adheres closely to the verbage and conventions of the ESI spec.

```
ESI::character($characterId)->get();      // GET /character/{$characterId}/
ESI::character($characterId)->portrait(); // GET /character/{$characterId}/portrait/

```

In some cases, aliases are provided to reflect more common verbage that may differ from the ESI spec.

```
ESI::character($characterId)->corporationHistory(); // GET /character/{$characterId}/corporation_history/
ESI::character($characterId)->employmentHistory();  // GET /character/{$characterId}/corporation_history/

ESI::character($characterId)->agentsResearch();     // GET /character/{$characterId}/agents_research/
ESI::character($characterId)->researchAgents();     // GET /character/{$characterId}/agents_research/

```

### Accessing the Response

[](#accessing-the-response)

Every ESI call made through Orthrus will return an object decoded from the original JSON response.

```
ESI::character(94087852)->get()->name; // Michael Mach

```

Helper Methods
--------------

[](#helper-methods)

### Set ESI Route Version

[](#set-esi-route-version)

By default, Orthrus will use the `/latest/` version route for all ESI calls. You may override this for an ESI call.

```
ESI::version('v1')->character($characterId)->get();

```

### Set/Override Default Refresh Token

[](#setoverride-default-refresh-token)

You may set or override the default refresh token for all ESI calls made through Orthrus for a request lifecycle.

```
ESI::setRefreshToken($token);

```

### Reset Default Refresh Token

[](#reset-default-refresh-token)

If you wish to set the default refresh token for all ESI calls made through Orthrus after changing it with `setRefreshToken()`, you may reset it to the default defined in your `.env` configuration file.

```
ESI::resetRefreshToken();

```

### Using Alternative Refresh Token For One ESI Call

[](#using-alternative-refresh-token-for-one-esi-call)

You may use an alternative refresh token for a single ESI call through Orthrus.

This is particularly useful for endpoints which require the call to be made from a refresh token belonging to a character with a particular role or level of access in a corporation, and you don't want to set and reset the refresh token used by Orthrus manually.

```
ESI::corporation($corporationId)->roles()->withRefreshToken($token);

```

### Accessing Ancillary Response Information

[](#accessing-ancillary-response-information)

It can be useful in some situations to be able to evaluate the response code, expiration, and potential error message from a response. To do so, you may use the following methods below.

```
ESI::responseCode();
ESI::responseExpires();
ESI::responseErrorMessage();

```

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance10

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 95.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

2981d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8b3e0ed5cc19c15dbdabfbf8e3522af67f125f651b8dcf21058aab14009c3a26?d=identicon)[michaelcooke](/maintainers/michaelcooke)

---

Top Contributors

[![michaelcooke](https://avatars.githubusercontent.com/u/12518009?v=4)](https://github.com/michaelcooke "michaelcooke (158 commits)")[![OrthoLoess](https://avatars.githubusercontent.com/u/244829?v=4)](https://github.com/OrthoLoess "OrthoLoess (8 commits)")

---

Tags

laravellaravel 5esiEVE Onlineeveeseye

### Embed Badge

![Health badge](/badges/michaelcooke-orthrus/health.svg)

```
[![Health](https://phpackages.com/badges/michaelcooke-orthrus/health.svg)](https://phpackages.com/packages/michaelcooke-orthrus)
```

###  Alternatives

[livewire/volt

An elegantly crafted functional API for Laravel Livewire.

4195.3M84](/packages/livewire-volt)[forxer/laravel-gravatar

A library providing easy gravatar integration in a Laravel project.

4235.6k](/packages/forxer-laravel-gravatar)[nahid/linkify

Converts URLs and email addresses in text into HTML links its extended from Misd\\Linify its also support laravel 5

11136.0k1](/packages/nahid-linkify)[iteks/laravel-enum

A comprehensive Laravel package providing enhanced enum functionalities, including attribute handling, select array conversions, and fluent facade interactions for robust enum management in Laravel applications.

2516.7k](/packages/iteks-laravel-enum)[latrell/qqwry

纯真 IP 库 Laravel 版 。

274.7k](/packages/latrell-qqwry)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
