grottopress / getter
Get private object attributes directly, without calling getter methods.
Installs: 1 962
Dependents: 4
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/grottopress/getter
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
masterbranch: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:masterbranch.