/** * Returns the value of an attribute of a class or an object. * This also works for attributes that are declared protected or private. * * @param mixed $classOrObject * @param string $attributeName * @return mixed * @throws PHPUnit_Framework_Exception */ public static function readAttribute($classOrObject, $attributeName) { if (!is_string($attributeName)) { throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'string'); } if (is_string($classOrObject)) { if (!class_exists($classOrObject)) { throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'class name'); } return PHPUnit_Util_Class::getStaticAttribute($classOrObject, $attributeName); } else { if (is_object($classOrObject)) { return PHPUnit_Util_Class::getObjectAttribute($classOrObject, $attributeName); } else { throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'class name or object'); } } }