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.

1.1.2 2022-11-28 18:38 UTC

This package is auto-updated.

Last update: 2024-05-28 21:54:03 UTC


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