Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rakshazi/getsettrait
Magic getter/setter trait for any PHP class in one string of code.
https://github.com/rakshazi/getsettrait
composer getters php setter trait
Last synced: 2 months ago
JSON representation
Magic getter/setter trait for any PHP class in one string of code.
- Host: GitHub
- URL: https://github.com/rakshazi/getsettrait
- Owner: rakshazi
- Created: 2016-05-27T18:07:53.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-09-24T08:58:12.000Z (over 5 years ago)
- Last Synced: 2024-04-25T23:04:57.244Z (9 months ago)
- Topics: composer, getters, php, setter, trait
- Language: PHP
- Size: 17.6 KB
- Stars: 4
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GetSetTrait
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](http://getcomposer.org/) 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](https://packagist.org/packages/rakshazi/get-set-trait).
## Usage
Just add this in your classes:
> use Rakshazi\GetSetTrait;
```php
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
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!"
}
}
```