rakshazi / get-set-trait
Dynamic Setter-Getter for PHP 5.4+
Installs: 10 403
Dependents: 2
Suggesters: 0
Security: 0
Stars: 4
Watchers: 3
Forks: 2
Open Issues: 0
Requires
- php: >=5.4.0
This package is auto-updated.
Last update: 2024-10-24 21:08:14 UTC
README
A dynamic setter-getter library for PHP 5.4+.
You can use methods like setFoo('bar')
and getFoo()
, which you DON'T have to create (in your class).
GetSetTrait will make these methods work for you automatically as long as you have a $foo
property in your class.
It makes use of Traits, so using
it is super simple, you don't have to extend any class, as you can extend a single class only, we don't force you to use ours.
You can restrict to only getter only or you can specify a Type for property using annotations.
Installation
GetSetTrait uses Composer to make hassles Go.
Learn to use composer and add this to require (in your composer.json):
"rakshazi/get-set-trait": "@stable"
Library on Packagist.
Usage
Just add this in your classes:
use Rakshazi\GetSetTrait;
class Dummy { //Add ability to use dynamic getters and setters use \Rakshazi\GetSetTrait; } //Init dummy class $dummy = new Dummy; //Set new var 'message_for_world' with value $dummy->setMessageForWorld('Hello'); //Will return "Hello\n" echo $dummy->getMessageForWorld()."\n"; //Will return the same text echo $dummy->getData('message_for_world')."\n"; //Set new message for our world! $dummy->setData('message_for_world', 'Bye-bye!'); //Will return "Bye-bye!\n" echo $dummy->getData('message_for_world')."\n"; //Will set new var 'new_message' $dummy->setNewMessage('Use me now!'); //Will return true, value exists $dummy->hasNewMessage(); //Will return false $dummy->hasSomeOtherValue(); //Will show all object data var_dump($dummy);
That's basically it.
Advanced usage
Data property
If you want save all data in $object->someProperty
array instead of saving each property as object's property ($object->property_name
),
you can use setDataProperty('data')
function, example:
<?php class Dummy { //Add ability to use dynamic getters and setters use \Rakshazi\GetSetTrait; public function __construct() { $this->setDataProperty('data'); } } //Init dummy class $dummy = new Dummy; //Set new var 'message_for_world' with value $dummy->setMessageForWorld('Hello'); //Will return "Hello\n" echo $dummy->getMessageForWorld()."\n"; //Will return the same text echo $dummy->getData('message_for_world')."\n"; //Set new message for our world! $dummy->setData('message_for_world', 'Bye-bye!'); //Will return "Bye-bye!\n" echo $dummy->getData('message_for_world')."\n"; //Will set new var 'new_message' $dummy->setNewMessage('Use me now!'); //Will return all properties in an array $dummy->getAllData(); //Will show all object data var_dump($dummy);
Result (all data saved in data
property)
object(Dummy)#1 (2) {
["_data_property":"Dummy":private]=>
string(4) "data"
["data"]=>
array(2) {
["message_for_world"]=>
string(8) "Bye-bye!"
["new_message"]=>
string(11) "Use me now!"
}
}