grottopress / getter
Get private object attributes directly, without calling getter methods.
Installs: 1 949
Dependents: 4
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=7.0
Requires (Dev)
README
Description
Getter allows you to get private object attributes directly, without calling getter methods.
For example, instead of calling $myObject->getMyAttr()
, you can just do $myObject->myAttr
. Under the hood, Getter gets your attribute by calling a private getMyAttr()
method that you define in your class.
This way, you get the benefit of syntactic sugar, while maintaining encapsulation.
Installation
Install via composer: composer require grottopress/getter
Usage
Import trait into your class, and use thus:
<?php declare (strict_types = 1); namespace Vendor; use GrottoPress\Getter\GetterTrait; class MyClass { /** * Import trait */ use GetterTrait; private $haveMe; private $leaveMeAlone; public function __construct() { $this->haveMe = 'Hello :-)'; $this->leaveMeAlone = 'Go away!'; } /** * Define your private getter method * Method name should be of the format "get{$attrName}" */ private function getHaveMe(): string { return $this->haveMe; } // ... } // Instantiate $object = new Vendor\MyClass(); // Try to get attributes echo $object->haveMe; // => Hello :-) echo $object->leaveMeAlone; // => Error: 'getLeaveMeAlone()' not defined echo $object->nonExistent; // => Exception: 'nonExistent' does not exist
Development
Run tests with composer run test
.
Contributing
- Fork it
- Switch to the
master
branch:git checkout master
- Create your feature branch:
git checkout -b my-new-feature
- Make your changes, updating changelog and documentation as appropriate.
- Commit your changes:
git commit
- Push to the branch:
git push origin my-new-feature
- Submit a new Pull Request against the
GrottoPress:master
branch.