public function boot(Server $server, PsrLogger $logger)
{
$server->attach($this);
$this->bootLoader = static function (Bootable $bootable) use($server, $logger) {
$booted = $bootable->boot($server, $logger);
if ($booted !== null && !$booted instanceof Middleware && !is_callable($booted)) {
throw new \InvalidArgumentException("Any return value of " . get_class($bootable) . '::boot() must return an instance of Aerys\\Middleware and/or be callable');
}
return $booted ?? $bootable;
};
}