path = new DyPath($path); } public function __invoke(Request $req, Response $res, Arguments $args){ $err = null; foreach($this->handles as $k => $fn){ try{ $fn($req, $res, $args, $err); }catch(\Exception $e){ $err = $e; } } } public function __clone(){ // No cloning for now } public function __destruct(){ // Nothing to do here } public function jsonSerialize(){ return [ 'dypath'=>$this->path ]; } public function __toString(){ return "[Path {$this->path}]"; } public function handle(callable $fn){ array_push($this->handles,$fn); return $this; } public function matches(string $path){ return $this->path->matches($path); } public function args(string $path){ return $this->path->args($path); } } ?>