src/Console/src/Command/SignatureParser.php
private function parseParameters(): array
    {
        $arguments = [];
        $options = [];
        $signatureArguments = $this->getParameters();

        foreach ($signatureArguments as $value) {
            $item = [];
            $matches = [];
            $exploded = explode(':', $value);

            if (count($exploded) > 0 && preg_match($this->argumentsMatcher, $exploded[0], $matches)) {
                $item['name'] = $matches[1];
                $item['type'] = $this->defineType($matches[2] === '[]', $matches[3] === '=');
                $item['default'] = $matches[4] !== '' ? $matches[4] : null;
                $item['description'] = count($exploded) === 2 ? $exploded[1] : null;

                if ($matches[2] === '[]' && $item['default'] !== null) {
                    $item['default'] = explode(',', $item['default']);
                }

                if (substr($exploded[0], 0, 2) === '--') {
                    $options[] = $item;
                } else {
                    $arguments[] = $item;
                }
            }
        }

        return [
            'arguments' => $arguments,
            'options' => $options,
        ];
    }
private function parseParameters(): array
    {
        $arguments = [];
        $options = [];
        $signatureArguments = $this->getParameters();

        foreach ($signatureArguments as $value) {
            $item = [];
            $matches = [];
            $exploded = explode(':', $value);

            if (count($exploded) > 0 && preg_match($this->argumentsMatcher, $exploded[0], $matches)) {
                $item['name'] = $matches[1];
                $item['type'] = $this->defineType($matches[2] === '[]', $matches[3] === '=');
                $item['default'] = $matches[4] !== '' ? $matches[4] : null;
                $item['description'] = count($exploded) === 2 ? $exploded[1] : null;

                if ($matches[2] === '[]' && $item['default'] !== null) {
                    $item['default'] = explode(',', $item['default']);
                }

                if (substr($exploded[0], 0, 2) === '--') {
                    $options[] = $item;
                } else {
                    $arguments[] = $item;
                }
            }
        }

        return [
            'arguments' => $arguments,
            'options' => $options,
        ];
    }
private function parseParameters ( ) : array { $ arguments = [ ] ; $ options = [ ] ; $ signatureArguments = $ this -> getParameters ( ) ; foreach ( $ signatureArguments as $ value ) { $ item = [ ] ; $ matches = [ ] ; $ exploded = explode ( ':' , $ value ) ; if ( count ( $ exploded ) > 0 && preg_match ( $ this -> argumentsMatcher , $ exploded [ 0 ] , $ matches ) ) { $ item [ 'name' ] = $ matches [ 1 ] ; $ item [ 'type' ] = $ this -> defineType ( $ matches [ 2 ] === '[]' , $ matches [ 3 ] === '=' ) ; $ item [ 'default' ] = $ matches [ 4 ] !== '' ? $ matches [ 4 ] : null ; $ item [ 'description' ] = count ( $ exploded ) === 2 ? $ exploded [ 1 ] : null ; if ( $ matches [ 2 ] === '[]' && $ item [ 'default' ] !== null ) { $ item [ 'default' ] = explode ( ',' , $ item [ 'default' ] ) ; } if ( substr ( $ exploded [ 0 ] , 0 , 2 ) === '--' ) { $ options [ ] = $ item ; } else { $ arguments [ ] = $ item ; } } } return [ 'arguments' => $ arguments , 'options' => $ options , ] ; }
Parses arguments and options from signature string,
returns an array with definitions

@return array
Parses arguments and options from signature string returns an array with definitions