spekkionu / property-access
Trait that automatically calls getters and setters for property access.
0.4.0
2015-04-02 02:09 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: ~4.5.0
This package is auto-updated.
Last update: 2024-11-12 14:12:16 UTC
README
Trait that automatically calls getters and setters for property access.
use Spekkionu\PropertyAccess\PropertyAccessTrait; class ExampleClass { use PropertyAccessTrait; private $name; private $email; }
$example = new ExampleClass(); $example->name = 'Bob'; $example->email = 'bob@example.com'; echo $example->name; // Bob $example->fill(array( 'name' => 'Steve', 'email' => 'steve@example.com' )); echo $example->email; // steve@example.com
Getters and Setters will be called
You can even use Value Objects
use Spekkionu\PropertyAccess\PropertyAccessTrait; class ExampleClass { use PropertyAccessTrait; private $name; private $email; public function setEmail(EmailAddress $email){ $this->email = $email; } } // Value Object class EmailAddress { private $email; public function __construct($email) { if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { throw new InvalidArgumentException('Not a valid email address.'); } $this->email = $email; } public function getValue() { return $this->email; } public function __toString() { return $this->getValue(); } } // Usage $example = new ExampleClass(); $example->email = new EmailAddress('bob@example.com');