PHPackages                             cloudoki/except-io-nal - 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. [Testing &amp; Quality](/categories/testing)
4. /
5. cloudoki/except-io-nal

AbandonedArchivedLibrary[Testing &amp; Quality](/categories/testing)

cloudoki/except-io-nal
======================

The Cloudoki PHP Exception extensions throw manageable errors in a multi-tier MQ alignment

v0.5.2(9y ago)01.3k2MITPHPPHP &gt;=5.4.0

Since Jun 25Pushed 9y ago1 watchersCompare

[ Source](https://github.com/Cloudoki/Except-io-nal)[ Packagist](https://packagist.org/packages/cloudoki/except-io-nal)[ Docs](http://github.com/Cloudoki/Except-io-nal)[ RSS](/packages/cloudoki-except-io-nal/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (5)Used By (2)

Except-io-nal
=============

[](#except-io-nal)

The Cloudoki PHP Exception extensions throw manageable errors in a multi-tier MQ alignment.

The main goal of this package is to correctly bubble exceptions from the worker to the api layer. On the API layer, cases for production and development environments can be implemented.

\####Dependencies None so far.

---

Install
-------

[](#install)

1. Add the cloudoki/except-io-nal package to your composer file (dev-master is fine).
2. The Classes load as `\Cloudoki\SomeException`.
3. Load the custom exception handler in `App/Exceptions/Handler.php`, like so:

```
namespace App\Exceptions;

use Cloudoki\Proc\ExceptionalHandler;

class Handler extends ExceptionalHandler {}

```

\##Usage The package defines a set of **Exception** extensions. They are easy to emplement in any PHP environment, but are especially useful in a **MQ alignment** (API &lt;-&gt; Worker). The Exceptions assist worker level errors to correctly bubble up in the API response.

\####DatabaseException We use the DatabaseException to define unexpected database responses and time-outs on connections.

\####InvalidEnvironmentException If an interaction is triggered outside the desired environment scope (eg. development or production), an InvalidEnvironment should be thrown to kill the process.

\####MissingParameterException A common exception in API applications. Bubbles a useful error message if set up correctly.

\####InvalidParameterException Probably the most common custom Exception.

\####IncompleteModelException While developing new model scopes, this exception can be useful to flag accidently accessed unfinished logic.

\####MissingSchemaException Schema's are used in the **Cloudoki/SchemaModel** package. To be released soon.

\####QuotaExceededException Some quota limitation has been exceeded. Used in eg. the Limiter package.

\####InvalidUserException A default authorisation error response.

\####WorkerException The API should define errors bubbled up from the Worker response as a *WorkerException* for logging purposes.

\##Responses The exceptions are even more useful in a development/production divided environment, where an endpoint consumer has no business with internal problems as eg. a worker-level logic bug. By default, the package returns 3 responses.

#### 400 Response

[](#400-response)

Malformed method or request syntax

#### 403 Response

[](#403-response)

No valid authorization provided

#### 404 Response

[](#404-response)

Not Found

*A 500 response should be avoided in any production situation.*

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 90% 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 ~158 days

Total

4

Last Release

3505d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/46a1f5fb785419ecea5d467ae6b13665998c2850da3cc2c9d5b294021e4d5ddb?d=identicon)[koenbetsens](/maintainers/koenbetsens)

---

Top Contributors

[![koenbetsens](https://avatars.githubusercontent.com/u/3852397?v=4)](https://github.com/koenbetsens "koenbetsens (9 commits)")[![tiagoalves](https://avatars.githubusercontent.com/u/215495?v=4)](https://github.com/tiagoalves "tiagoalves (1 commits)")

---

Tags

phpexceptionsMQ3-layer

### Embed Badge

![Health badge](/badges/cloudoki-except-io-nal/health.svg)

```
[![Health](https://phpackages.com/badges/cloudoki-except-io-nal/health.svg)](https://phpackages.com/packages/cloudoki-except-io-nal)
```

###  Alternatives

[vimeo/psalm

A static analysis tool for finding errors in PHP applications

5.8k77.5M6.7k](/packages/vimeo-psalm)[larastan/larastan

Larastan - Discover bugs in your code without running it. A phpstan/phpstan extension for Laravel

6.4k43.5M5.2k](/packages/larastan-larastan)[dave-liddament/sarb

Provides tools for baselining static analysis results and comparing against that baseline

1651.4M](/packages/dave-liddament-sarb)[letsdrink/ouzo-goodies

Utility classes, test assertions and mocking framework extracted from Ouzo framework.

132617.9k7](/packages/letsdrink-ouzo-goodies)[quizlet/hammock

Hammock is a stand-alone mocking library for Hacklang.

27445.5k](/packages/quizlet-hammock)[doppiogancio/mocked-client

A simple way to mock a client

2174.9k3](/packages/doppiogancio-mocked-client)

PHPackages © 2026

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