PHPackages                             penny/excp-handler - 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. penny/excp-handler

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

penny/excp-handler
==================

0.0.2(10y ago)1961MITPHP

Since Dec 29Pushed 9y agoCompare

[ Source](https://github.com/pennyphp/excp-handler)[ Packagist](https://packagist.org/packages/penny/excp-handler)[ RSS](/packages/penny-excp-handler/feed)WikiDiscussions master Synced 4w ago

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

Exception Handler
=================

[](#exception-handler)

[![Build Status](https://camo.githubusercontent.com/6ba58992323fb96abd9bc3bfe733c3811f78f1930c6183e27cf0ae474a0c9932/68747470733a2f2f7472617669732d63692e6f72672f70656e6e797068702f657863702d68616e646c65722e737667)](https://travis-ci.org/pennyphp/excp-handler)
This project helps you to manage your exceptions with [whoops](https://github.com/filp/whoops).

Whoops
------

[](#whoops)

> whoops is an error handler base/framework for PHP. Out-of-the-box, it provides a pretty error interface that helps you debug your web projects, but at heart it's a simple yet powerful stacked error handling system.

Project
-------

[](#project)

This project constains a Penny event listener ready to use in your penny application.

Install
-------

[](#install)

```
composer require penny/excp-handler

```

Getting Started
---------------

[](#getting-started)

The Penny Event Listener provided is a `Penny\ExcpHandler\EventListener\WhoopsListener`, which contains method `onError($e)` that can pass event that is a `EventInterface` implementation. You can set up [whoops](https://github.com/filp/whoops) handlers by provide `$current` and `$handlers` parameter in contructor:

```
public function __construct($current = "html", $handlers = [])
```

You may use default implementation by leave them as empty when create a `Penny\ExcpHandler\EventListener\WhoopsListener` instance.

Usage in Penny Skeleton Application
-----------------------------------

[](#usage-in-penny-skeleton-application)

- composer require as [above](https://github.com/pennyphp/excp-handler#install)
- register in `config/di.php`:

```
use Penny\ExcpHandler\EventListener\WhoopsListener;

return [
    'event_manager' => \DI\decorate(function($eventManager, $container) {
        $eventManager->attach("dispatch_error", [$container->get(WhoopsListener::class), "onError"]);
        // you may need to apply to '*_error' as well...

        // other event here...
        return $eventManager;
    }),

    WhoopsListener::class => \DI\object(WhoopsListener::class),
```

That's it. And you're ready to go.

###  Health Score

26

—

LowBetter than 41% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 80% 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 ~32 days

Total

2

Last Release

3804d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6d34f29506d934b7fd2a8ef8c16781337862657ff129d61c5c610482fff336a5?d=identicon)[GianArb](/maintainers/GianArb)

---

Top Contributors

[![samsonasik](https://avatars.githubusercontent.com/u/459648?v=4)](https://github.com/samsonasik "samsonasik (4 commits)")[![gianarb](https://avatars.githubusercontent.com/u/1630267?v=4)](https://github.com/gianarb "gianarb (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/penny-excp-handler/health.svg)

```
[![Health](https://phpackages.com/badges/penny-excp-handler/health.svg)](https://phpackages.com/packages/penny-excp-handler)
```

###  Alternatives

[tempest/framework

The PHP framework that gets out of your way.

2.2k31.1k12](/packages/tempest-framework)[humanmade/coding-standards

Human Made Coding Standards

160437.4k57](/packages/humanmade-coding-standards)[phlak/directory-lister

PHP directory lister

2.5k1.4k](/packages/phlak-directory-lister)[mediawiki/mediawiki-codesniffer

MediaWiki CodeSniffer Standards

333.1M397](/packages/mediawiki-mediawiki-codesniffer)[ec-europa/toolkit

Toolkit packaged for Drupal projects based on Robo.

39250.0k28](/packages/ec-europa-toolkit)[shopsys/coding-standards

Coding standards definition compatible with PSR-2

20276.8k20](/packages/shopsys-coding-standards)

PHPackages © 2026

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