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.