PHPackages                             bouiboui/tissue - 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. [Debugging &amp; Profiling](/categories/debugging)
4. /
5. bouiboui/tissue

AbandonedArchivedLibrary[Debugging &amp; Profiling](/categories/debugging)

bouiboui/tissue
===============

Create Github issues from your Exceptions

v0.0.3(10y ago)113143UnlicensePHP

Since Feb 21Pushed 5y agoCompare

[ Source](https://github.com/bouiboui/tissue)[ Packagist](https://packagist.org/packages/bouiboui/tissue)[ RSS](/packages/bouiboui-tissue/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (3)Dependencies (3)Versions (5)Used By (0)

tissue
======

[](#tissue)

[![Latest Version on Packagist](https://camo.githubusercontent.com/df4e3ac364dd51896d6a91b67bb7792c34870086089beaf74ddc20bcd68bbc47/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f626f7569626f75692f7469737375652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/bouiboui/tissue)[![License](https://camo.githubusercontent.com/e6fd1430520a41e5861f1fdf2ac70cde32bdfe292a6f2ddb83681339575c7948/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d556e6c6963656e73652d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![SensioLabsInsight](https://camo.githubusercontent.com/c0c6f06e446a11b05b33ae6e31c92dc97609bdcc1aafef4183522c3dc498cc03/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f66646333633138362d663738372d343432372d396338312d6133663832663364623732302f6d696e692e706e67)](https://insight.sensiolabs.com/projects/fdc3c186-f787-4427-9c81-a3f82f3db720)

Create Github issues from your `catch {}` blocks. I was heavily inspired by [ohCrash](https://ohcrash.com/).

When you call `Tissue::create`, a Github issue is created in the repo of your choice and a "bug" label is automatically applied. Duplicates are detected, to a certain extent.

The name comes from "Throw ISSUE" — genius, I know.

Install
-------

[](#install)

```
$ composer require bouiboui/tissue
```

Create a local `config/config.yaml` file from the template in [`config/config.yaml.dist`](https://github.com/bouiboui/tissue/blob/master/config/config.yaml.dist)

Usage
-----

[](#usage)

**The easy way: `bindUncaughtExceptionHandler`**

```
// Not shown: include composer's autoload.php
use bouiboui\Tissue\Tissue;

// All uncaught exceptions will trigger the creation of a Github issue
Tissue::bindUncaughtExceptionHandler();
```

**The catch-block-specific way: `createFromException`**

```
// Not shown: include composer's autoload.php
use bouiboui\Tissue\Tissue;

try {

    throw new ErrorException('This is your issue title and message.');

} catch (\ErrorException $e) {

    // Only exceptions caught by this block will create Github issues
    $result = Tissue::createFromException($e);

}
```

**The "customized output" way: `create`**

```
// Not shown: include composer's autoload.php
use bouiboui\Tissue\Tissue;

try {

    throw new ErrorException('This is your issue title and message.');

} catch (\ErrorException $e) {

    // Set any parameter to null if you don't want to display it in the issue
    $result = Tissue::create(
        $e->getMessage(),
        $e->getCode(),
        $e->getSeverity(),
        $e->getFile(),
        $e->getLine(),
        $e->getTraceAsString()
    );

    var_dump($result);

}
```

Creates the following issue:

[![Something like this](https://camo.githubusercontent.com/119f4069a7eab8e7af1a4b8d73c8236b058fb6bdef0c057baceee6582a32ecf7/687474703a2f2f692e696d6775722e636f6d2f4e3572384c6a682e706e67)](https://camo.githubusercontent.com/119f4069a7eab8e7af1a4b8d73c8236b058fb6bdef0c057baceee6582a32ecf7/687474703a2f2f692e696d6775722e636f6d2f4e3572384c6a682e706e67)[![Something like this](https://camo.githubusercontent.com/566ef3055a621adb621c37a1d96ed793059f1a4693e5307fd26ed6a6e5efc7f5/687474703a2f2f692e696d6775722e636f6d2f6139366c3768522e706e67)](https://camo.githubusercontent.com/566ef3055a621adb621c37a1d96ed793059f1a4693e5307fd26ed6a6e5efc7f5/687474703a2f2f692e696d6775722e636f6d2f6139366c3768522e706e67)

And outputs the following:

```
array(3) {
  ["duplicate"]=>
  bool(false)
  ["number"]=>
  int(35)
  ["url"]=>
  string(50) "https://api.github.com/repos/author/name/issues/35"
}
```

For security purposes, if your Github repository is public you should at the *very* least disable the `trace` parameter, unless you want strangers on the Internet to know the full path to the files on your server. [You may also want to read this](https://www.owasp.org/index.php/Improper_Error_Handling#Description).

Credits
-------

[](#credits)

- bouiboui — [Github](https://github.com/bouiboui) [Twitter](https://twitter.com/j_____________n) [Website](http://cod3.net)
- [All contributors](https://github.com/bouiboui/tissue/graphs/contributors)

License
-------

[](#license)

Unlicense. Public domain, basically. Please treat it kindly. See [License File](LICENSE) for more information.

This project uses the following open source projects

- [knplabs/github-api](https://github.com/KnpLabs/php-github-api) by [KnpLabs](https://github.com/KnpLabs) — [License](https://github.com/KnpLabs/php-github-api/blob/master/LICENSE).
- [symfony/yaml](https://github.com/symfony/yaml) by [Fabien Potencier](https://github.com/fabpot) — [License](https://github.com/symfony/yaml/blob/master/LICENSE).
- [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) by [Sebastian Bergmann](https://github.com/sebastianbergmann) — [License](https://github.com/sebastianbergmann/phpunit/blob/master/LICENSE).

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 94.7% 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 ~1 days

Total

3

Last Release

3779d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3274103?v=4)[Julien](/maintainers/bouiboui)[@bouiboui](https://github.com/bouiboui)

---

Top Contributors

[![bouiboui](https://avatars.githubusercontent.com/u/3274103?v=4)](https://github.com/bouiboui "bouiboui (36 commits)")[![imnotjames](https://avatars.githubusercontent.com/u/1551593?v=4)](https://github.com/imnotjames "imnotjames (2 commits)")

---

Tags

exceptionsgithubissuespackagistphpexceptionerrorgithubissue

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/bouiboui-tissue/health.svg)

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

###  Alternatives

[filp/whoops

php error handling for cool kids

13.2k420.3M1.5k](/packages/filp-whoops)[zeuxisoo/slim-whoops

PHP whoops error on slim framework

1301.1M27](/packages/zeuxisoo-slim-whoops)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1175.2k](/packages/rcsofttech-audit-trail-bundle)[aeliot/todo-registrar

Register TODOs from source code in issue tracker

153.0k](/packages/aeliot-todo-registrar)[ikkez/f3-falsum

Pretty error handling for Fat-Free Framework

22148.4k3](/packages/ikkez-f3-falsum)[thehocinesaad/laravel-error-ai

This package adds Ask AI button to the error page.

2222.3k](/packages/thehocinesaad-laravel-error-ai)

PHPackages © 2026

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