public function invoke($returnVar = null)
{
$content = $this->config['content'];
$return = $returnVar ? sprintf('return %s;', $this->createReturnVar($returnVar)) : '';
$use = [];
foreach ($this->use as $class) {
$use[] = 'use ' . $class . ';';
}
if (!empty($use)) {
$content = implode("\n", $use) . $content;
}
$cb = function ($return) use($content) {
extract($this->locals);
ob_start();
$res = eval($content . "\n\n" . $return);
$out = ob_get_clean();
return new InvokeResult($res, $out);
};
return $cb($return);
}