public function chain(Chain $chain = null)
    {
        $chain = ($chain) ? $chain : new Chain();
        $chain->add($this);

        return $chain;
    }
public function chain(Chain $chain = null)
    {
        $chain = ($chain) ? $chain : new Chain();
        $chain->add($this);

        return $chain;
    }
public function chain ( Chain $ chain = null ) { $ chain = ( $ chain ) ? $ chain : new Chain ( ) ; $ chain -> add ( $ this ) ; return $ chain ; }
Start the command chaining process. This command will become the first command in the chain

@param  Chain $chain [optional] You can provide a pre initialized Chain object that will be used as "chainer".
If none is provided, one will be initialized automatically for you.
@return Chain Returns a Chain Object that you can use to add subsequent commands
Start the command chaining process . This command will become the first command in the chain