alexanevsky/getter-setter-accessor-bundle

Provides functions to read and write from/to an object and gets the list of object getters and setters.

1.0.1 2023-03-24 22:47 UTC

This package is auto-updated.

Last update: 2024-04-25 01:10:24 UTC


README

This library provides functions to read and write from/to an object and gets the list of object getters and setters.

Table of Contents

  1. First Step
  2. Get Value
  3. Set Value
  4. Get Getters List
  5. Get Getters List

First Step

Add GetterSetterAccessor to the constructor of controller or service:

use Alexanevsky\GetterSetterAccessorBundle\GetterSetterAccessor;

public function __construct(
    private GetterSetterAccessor $getterSetterAccessor
) {}

Then let's get an accessor of some object (it can be, for example, some model):

$objectAccessor = $this->getterSetterAccessor->createAccessor($objectAccessor);

Get Value

We can get the value of any property using the getValue() method, for example:

echo $objectAccessor->getValue('userName');
echo $objectAccessor->getValue('user_name');

The property name can be passed in both camel and snake cases. It will be converted to the one that is actually used.

If the object does not have a getter, an exception will be thrown. Before using getValue() we can make sure the getter exists using the hasGetter() method:

if ($objectAccessor->hasGetter('userName')) {
    echo $objectAccessor->getValue('userName');
}

Set Value

We can set the value of any property using the setValue() method, for example:

echo $objectAccessor->SetValue('userName', 'John Doe');
echo $objectAccessor->SetValue('user_name', 'John Doe');

The property name can be passed in both camel and snake cases. It will be converted to the one that is actually used.

If the object does not have a setter, an exception will be thrown. Before using setValue() we can make sure the setter exists using the hasSetter() method:

if ($objectAccessor->hasSetter('userName')) {
    echo $objectAccessor->setValue('userName', 'John Doe');
}

Get Getters List

We can get a list of all available object getters using the getGetters() method. As a result, we will get an array of ObjectGetter[], each of which has the following methods:

  • getValue() - returns a value
  • getName() - returns the property name
  • isNullable() - checks if the value allows null
  • getTypes() - returns a list of types that a value can be
  • getAttribute(attributeClass) - returns an attribute instance by the its class name
  • getAttribute(attributeClass) - checks if an attribute exists by its class name

Get Getters List

We can get a list of all available object getters using the getGetters() method. As a result, we will get an array of ObjectGetter[], each of which has the following methods:

  • getValue() - returns a value
  • getName() - returns the property name
  • isNullable() - checks if the value allows null
  • getTypes() - returns a list of types that a value can be
  • getAttribute(attributeClass) - returns an attribute instance by the its class name
  • getAttribute(attributeClass) - checks if an attribute exists by its class name

Good luck!