/** get the value of the property with the specified name
* @param string $propertyName the name by which a PntPropertyDescriptor can be obtained from ::getPropertyDescriptor
* @param PntSqlFilter $filter to apply, or null if unfiltered (currently only used by multi value properties)
* @return mixed dynamically typed by the PropertyDescriptor>>type
* @throws PntError if property missing, derivation fails, or anything an evetial getter method throws
*/
function ($propertyName, $filter=true) {
$prop = $this->($propertyName);
if (!$prop)
throw new PntReflectionError($this->()." property not found: '$propertyName'");
return $prop->($this, $filter);
}
|