GitHub - langabi/dev: Development and debugging tools for Recoil applications.

Build Status Code Coverage Code Quality Latest Version

Development and debugging tools for Recoil applications.

composer require --dev recoil/dev

Primarily, recoil/dev is a Composer plugin that automatically instruments coroutine functions to provide meaningful stack traces in the event of an exception. Without recoil/dev, stack traces tend to show details about the internals of the Recoil kernel, rather than the coroutines it is executing.

The instrumentor identifies functions as coroutines if they have a return type hint of Coroutine, where Coroutine is an alias for Generator, for example:

// Alias Generator as Coroutine.
use Generator as Coroutine;

function doNothing(int $value): Coroutine // Mark function as a coroutine.
{
    yield;
}

The instrumentor will not instrument functions that use a return type hint of Generator, as without the alias it has no way to distinguish between an actual coroutine and a regular generator function.

Building and testing

Please see CONTRIBUTING.md for information about running the tests and submitting changes.