Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/usmanhalalit/getsetgo
A dynamic setter-getter library for PHP
https://github.com/usmanhalalit/getsetgo
Last synced: about 5 hours ago
JSON representation
A dynamic setter-getter library for PHP
- Host: GitHub
- URL: https://github.com/usmanhalalit/getsetgo
- Owner: usmanhalalit
- License: mit
- Created: 2013-06-18T14:51:17.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2013-07-10T14:22:07.000Z (over 11 years ago)
- Last Synced: 2024-04-25T14:40:43.203Z (7 months ago)
- Language: PHP
- Homepage:
- Size: 141 KB
- Stars: 18
- Watchers: 4
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GetSetGo [![Build Status](https://travis-ci.org/usmanhalalit/GetSetGo.png?branch=master)](https://travis-ci.org/usmanhalalit/GetSetGo)
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). GetSetGo 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
GetSetGo uses [Composer](http://getcomposer.org/) to make hassles Go.
Learn to use composer and add this to require (in your composer.json):
"usmanhalalit/get-set-go": "1.*@dev"
Library on [Packagist](https://packagist.org/packages/usmanhalalit/get-set-go).
## Usage
Just add this in your classes:
use \GetSetGo\SetterGetter;
Example:
```PHP
Class MyClass{
use \GetSetGo\SetterGetter;protected $foo;
}
```
Now use it as
```PHP
$myClass = new MyClass;$myClass->setFoo('bar');
echo $myClass->getFoo();
```**That's basically it.**
### Restrict Getter or Setter or Both
You can use annotation in you class property if you want to disable setter, getter or both using `@setter` and `@getter` annotation variables.
```PHP
/**
* We can't use setSomeProperty() anymore.
*
* @var
* @setter false
*/
protected $someProperty;
```
___
```PHP
/**
* We can't use getSomeProperty() anymore.
*
* @var \stdClass
* @getter false
*/
protected $someProperty;
```
___```PHP
/**
* We can't use setSomeProperty() or getSomeProperty().
*
* @getter false
* @setter false
*/
protected $someProperty;
```### Force a Type or Class
You can specify a type for the property using `@var` annotation variable, so setter will take only a value of this type, else it will throw an exception. The code below will work similar aspublic function setSomeProperty(stdClass $value){}
```PHP
/**
* Should be an instance of stdClass only.
*
* @var \stdClass
*/
protected $shouldBeStdClass;
```
___
```PHP
/**
* Should be an array only.
*
* @var Array
*/
protected $shouldBeArray;
```
___
```PHP
/**
* Should be a string only
*
* @var String
*/
protected $shouldBeString;
```
___
```PHP
/**
* Should be a number only.
*
* @var Number
*/
protected $shouldBeNumber;
```
___
```PHP
/**
* Should be an object only.
*
* @var Object
*/
protected $shouldBeObject;
```## Notes
GetSetGo assumes that you use proper camelCase. So name your properties like `$pdoInstance` (not `$PDOInstance`) and call `setPdoInstance()` method.