Debugging closures
Learn how to debug serialized closures
Opis Closure is debugging friendly and can be used in conjunction with error handlers like whoops without any special or supplemental configurations.
$whoops = new \Whoops\Run;
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
$whoops->register();
$closure = function(){
throw new \Exception();
};
$closure = unserialize(serialize(new SerializableClosure($closure)))->getClosure();
$closure();
Opis Closure allows you to track the residing
source of a serialized closure by using the #trackme
directive inside the closure.
The #trackme
directive provides the following information:
Date
- the date when the closure was serialized, represented in the W3C formatTimestamp
- an integer representation of the DateFile
- the file where the serialized closure residesLine
- the line where the closure can be located inside the File
$whoops = new \Whoops\Run;
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
$whoops->register();
$closure = function(){
#trackme
throw new \Exception();
};
$closure = unserialize(serialize(new SerializableClosure($closure)))->getClosure();
$closure();