php-fluent-traits

Add common methods for fluent syntax

MIT License

Downloads
3.7K
Stars
0
Committers
2

PHP Fluent Traits

These traits gather some commons methods of classes implementing fluent syntax.

Quality

Installation

php-fluent-traits is installable via Composer

composer require jclaveau/php-fluent-traits

Usage

class FluentObject
{
    use JClaveau\Traits\Fluent\New_;
    use JClaveau\Traits\Fluent\Clone_;
    use JClaveau\Traits\Fluent\DefineAs;
    use JClaveau\Traits\Fluent\DefineCloneAs;
    use JClaveau\Traits\Fluent\Dump;
    
    protected $name;
    
    public function setName($name)
    {
        $this->name = $name;
        return $this;
    }
}

$instance = FluentObject::new_()
    ->setName('Foo')
    ->dump()                // FluentObject #1 Foo
    ->defineAs($fooObject1)
    ->clone_()
    ->dump()                // FluentObject #2 Foo
    ->defineCloneAs($barObject2)
    ->setName('Bar')
    ->dump()                // FluentObject #2 Bar
    ;
    
$fooObject1->dump(); // FluentObject #1 Foo
$barObject2->dump(); // FluentObject #3 Foo
$instance->dump();   // FluentObject #2 Bar