path = new DyPath($path); } public function __invoke($req, $res,$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($path){ return $this->path->matches($path); } public function args($path){ return $this->path->args($path); } } ?>