maximo-perez-villalba / class-properties-reader
La clase lee vía reflexión todos las propiedades de una clase incluyendo las propiedades privadas de su jerarquía.
Installs: 5
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/maximo-perez-villalba/class-properties-reader
Requires
- php: >=8.1
Requires (Dev)
- phpunit/phpunit: ^9.5
README
La clase lee vía reflexión todos las propiedades de una clase incluyendo las propiedades privadas de su jerarquía. Implementa una extensión del método ReflectionClass::getProperties de la clase ReflectionClass.
Ejemplo de uso
class YourCustomClassRoot { private string $propertyString = 'aValueOfTypeString'; private int $propertyInt = 0; private float $propertyFloat = 0.0; } class YourCustomClassNode extends YourCustomClassRoot { private bool $propertyBool = false; private array $propertyArray = []; } class YourCustomClassLeaf extends YourCustomClassNode { private object ?$propertyObjectOrNull = null; }
Como usar
Invocar el método ClassPropertiesReader::getAll(string $classname), retorna un ReflectionProperty[].
$allProperties = ClassPropertiesReader::getAll(YourCustomClassLeaf::class); print_r($allProperties);
Salida
Array ( [propertyObjectOrNull] => ReflectionProperty Object ( [name] => propertyObjectOrNull [class] => YourCustomClassLeaf ) [propertyArray] => ReflectionProperty Object ( [name] => propertyArray [class] => YourCustomClassNode ) [propertyBool] => ReflectionProperty Object ( [name] => propertyBool [class] => YourCustomClassNode ) [propertyFloat] => ReflectionProperty Object ( [name] => propertyFloat [class] => YourCustomClassRoot ) [propertyInt] => ReflectionProperty Object ( [name] => propertyInt [class] => YourCustomClassRoot ) [propertyString] => ReflectionProperty Object ( [name] => propertyString [class] => YourCustomClassRoot ) )