phine / accessor
This package is abandoned and no longer maintained.
No replacement package was suggested.
A PHP library for simplifying the use of accessors.
1.0.0
2013-11-07 23:15 UTC
Requires
- php: >=5.4
Requires (Dev)
- league/phpunit-coverage-listener: ~1.0
- phine/test: ~1.0
This package is not auto-updated.
Last update: 2021-12-07 01:40:41 UTC
README
A PHP library for simplifying the use of accessors.
Usage
use Doctrine\ORM\Mapping as ORM; use Phine\Accessor\AccessorTrait; use Phine\Accessor\Type\InstanceType; /** * This is an example Doctrine entity class. * * @ORM\Entity() * @ORM\Table() */ class Address { use AccessorTrait; /** * The country the address resides in. * * @var Country * * @ORM\JoinColumn(name="country") * @ORM\ManyToOne(targetEntity="Country") */ private $country; /** * The unique identifier for this address. * * @var integer * * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") * @ORM\Id() */ private $id; /** * The state the address resides in. * * @var State * * @ORM\JoinColumn(name="state") * @ORM\ManyToOne(targetEntity="State") */ private $state; /** * Configures the accessors. */ public function __construct() { $this->makePropertyAccessible('country'); $this->makePropertyAccessible('id'); $this->makePropertyAccessible('state'); $this->makePropertyMutable('country', new InstanceType('Country')); $this->makePropertyMutable('state', new InstanceType('State')); } }
Now we make use of that example class:
// this all works just fine $address = new Address(); $address->country = new Country(); $address->state = new State(); // these throw exceptions $address->country = new State(); $address->id = 123; $address->state = null;
Requirement
- PHP >= 5.4
Installation
Via Composer:
$ composer require "phine/accessor=~1.0"
Documentation
You can find the documentation in the docs/
directory.
License
This library is available under the MIT license.