alexanevsky/getter-setter-accessor-bundle
This library provides functions to read and write from/to an object and gets the list of object getters and setters.
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);
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');
}
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');
}
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 valuegetName() - returns the property nameisNullable() - checks if the value allows nullgetTypes() - returns a list of types that a value can begetAttribute(attributeClass) - returns an attribute instance by the its class namegetAttribute(attributeClass) - checks if an attribute exists by its class nameWe 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 valuegetName() - returns the property nameisNullable() - checks if the value allows nullgetTypes() - returns a list of types that a value can begetAttribute(attributeClass) - returns an attribute instance by the its class namegetAttribute(attributeClass) - checks if an attribute exists by its class nameGood luck!
How can I help you explore Laravel packages today?