spekkionu/property-access

Trait that automatically calls getters and setters for property access.

Maintainers

👁 spekkionu

Package info

github.com/spekkionu/property-access

pkg:composer/spekkionu/property-access

Statistics

Installs: 28

Dependents: 0

Suggesters: 0

Stars: 2

Open Issues: 0

0.4.0 2015-04-02 02:09 UTC

Requires

  • php: >=5.4.0

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 0d2fa1a9b1fb21b3788ab62710e7d725c4560bd3

  • Jonathan Bernardi <spekkionu.woop@spekkionu.com>

accesspropertygettersetter

This package is auto-updated.

Last update: 2026-06-12 17:56:38 UTC


README

👁 Build Status
👁 Code Coverage
👁 Scrutinizer Code Quality
👁 SensioLabsInsight

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');