<?php/**
* Whoops - php errors for cool kids
* @author Filipe Dobreira <http://github.com/filp>
*/namespaceWhoops\Handler;
useInvalidArgumentException;
/**
* Wrapper for Closures passed as handlers. Can be used
* directly, or will be instantiated automagically by Whoops\Run
* if passed to Run::pushHandler
*/classCallbackHandlerextendsHandler{
/**
* @var callable
*/protected$callable;
/**
* @throws InvalidArgumentException If argument is not callable
* @param callable $callable
*/publicfunction__construct($callable)
{
if (!is_callable($callable)) {
thrownewInvalidArgumentException(
'Argument to ' . __METHOD__ . ' must be valid callable'
);
}
$this->callable = $callable;
}
/**
* @return int|null
*/publicfunctionhandle()
{
$exception = $this->getException();
$inspector = $this->getInspector();
$run = $this->getRun();
$callable = $this->callable;
// invoke the callable directly, to get simpler stacktraces (in comparison to call_user_func).// this assumes that $callable is a properly typed php-callable, which we check in __construct().return$callable($exception, $inspector, $run);
}
}