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
)
)