<?phpnamespaceDeepCopy\Reflection;classReflectionHelper{/** * Retrieves all properties (including private ones), from object and all its ancestors. * * Standard \ReflectionClass->getProperties() does not return private properties from ancestor classes. * * @author muratyaman@gmail.com * @see http://php.net/manual/en/reflectionclass.getproperties.php * * @param \ReflectionClass $ref * @return \ReflectionProperty[] */publicstaticfunctiongetProperties(\ReflectionClass$ref){$props=$ref->getProperties();$propsArr=array();foreach($propsas$prop){$propertyName=$prop->getName();$propsArr[$propertyName]=$prop;}if($parentClass=$ref->getParentClass()){$parentPropsArr=self::getProperties($parentClass);foreach($propsArras$key=>$property){$parentPropsArr[$key]=$property;}return$parentPropsArr;}return$propsArr;}}