keradus/traits

Traits: general usage traits


License
MIT

Documentation

Traits

Latest Stable Version Latest Unstable Version Build status SensioLabsInsight

Traits - general usage traits.

Traits List

InaccessiblePropertiesProtectorTrait

Trait, that protects accessing inaccessible (unknown) properties to help keeping code clean and safe.

class Foo
{
    public $baz;
}

$foo = new Foo();
$foo->vaz = 123; // PHP claims that code is OK, even if you misspelled variable name!

class Bar
{
    use InaccessiblePropertiesProtectorTrait;

    public $baz;
}

$bar = new Bar();
$bar->vaz = 123; // now PHP throws \LogicException

InnerClassCacheTrait

Trait, that adds functionality of inner class cache.

class Foo
{
    use InnerClassCacheTrait;

    public function square($x)
    {
        if (!isset($this->cache[$x])) {
            $this->cache[$x] = $x * $x;
        }

        return $this->cache[$x];
    }
}

InstanceCreationDisallowerTrait

Trait, that disallow to create instance of class. Use for protecting static classes (only static members).

class Foo
{
    use InstanceCreationDisallowerTrait;

    public static function createInstance()
    {
        return new static();
    }
}

$foo = new Foo(); // PHP throws fatal error
$foo = Foo::createInstance(); // PHP throws \LogicException

PropertyTrait

Property trait.

SingletonTrait

StaticPropertyTrait

Property trait in static way.