/** * Proxy getting properties to real objects. * * @param string $name Property name. * * @throws \UnexpectedValueException If property unknown. * @return float */ public function __get($name) { switch ($name) { case 'Diff_Timeout': $result = $this->diff->getTimeout(); break; case 'Diff_EditCost': $result = $this->diff->getEditCost(); break; case 'Match_Threshold': $result = $this->match->getThreshold(); break; case 'Match_Distance': $result = $this->match->getDistance(); break; case 'Match_MaxBits': $result = $this->match->getMaxBits(); break; case 'Patch_DeleteThreshold': $result = $this->patch->getDeleteTreshold(); break; case 'Patch_Margin': $result = $this->patch->getMargin(); break; default: throw new \UnexpectedValueException('Unknown property: ' . $name); } return $result; }