protected function parseLongOption(string $token, array &$remainingTokens) : array
    {
        if (mb_strpos($token, '--') !== 0) {
            throw new RuntimeException("Invalid long option \"$token\"");
        }

        // Trim the "--"
        $option = mb_substr($token, 2);

        if (mb_strpos($option, '=') === false) {
            /**
             * The option is either of the form "--foo" or "--foo bar" or "--foo -b" or "--foo --bar"
             * So, we need to determine if the option has a value
             */
            $nextToken = array_shift($remainingTokens);

            // Check if the next token is also an option
            if (mb_substr($nextToken, 0, 1) === '-' || empty($nextToken)) {
                // The option must have not had a value, so put the next token back
                array_unshift($remainingTokens, $nextToken);

                return [$option, null];
            }

            // Make it "--foo=bar"
            $option .= '=' . $nextToken;
        }

        list($name, $value) = explode('=', $option);
        $value = $this->trimQuotes($value);

        return [$name, $value];
    }
protected function parseLongOption(string $token, array &$remainingTokens) : array
    {
        if (mb_strpos($token, '--') !== 0) {
            throw new RuntimeException("Invalid long option \"$token\"");
        }

        // Trim the "--"
        $option = mb_substr($token, 2);

        if (mb_strpos($option, '=') === false) {
            /**
             * The option is either of the form "--foo" or "--foo bar" or "--foo -b" or "--foo --bar"
             * So, we need to determine if the option has a value
             */
            $nextToken = array_shift($remainingTokens);

            // Check if the next token is also an option
            if (mb_substr($nextToken, 0, 1) === '-' || empty($nextToken)) {
                // The option must have not had a value, so put the next token back
                array_unshift($remainingTokens, $nextToken);

                return [$option, null];
            }

            // Make it "--foo=bar"
            $option .= '=' . $nextToken;
        }

        list($name, $value) = explode('=', $option);
        $value = $this->trimQuotes($value);

        return [$name, $value];
    }
protected function parseLongOption ( string $ token , array & $ remainingTokens ) : array { if ( mb_strpos ( $ token , '--' ) !== 0 ) { throw new RuntimeException ( "Invalid long option \"$token\"" ) ; } // Trim the "--" $ option = mb_substr ( $ token , 2 ) ; if ( mb_strpos ( $ option , '=' ) === false ) { /**
             * The option is either of the form "--foo" or "--foo bar" or "--foo -b" or "--foo --bar"
             * So, we need to determine if the option has a value
             */ $ nextToken = array_shift ( $ remainingTokens ) ; // Check if the next token is also an option if ( mb_substr ( $ nextToken , 0 , 1 ) === '-' || empty ( $ nextToken ) ) { // The option must have not had a value, so put the next token back array_unshift ( $ remainingTokens , $ nextToken ) ; return [ $ option , null ] ; } // Make it "--foo=bar" $ option .= '=' . $ nextToken ; } list ( $ name , $ value ) = explode ( '=' , $ option ) ; $ value = $ this -> trimQuotes ( $ value ) ; return [ $ name , $ value ] ; }
Parses a long option token and returns an array of data

@param string $token The token to parse
@param array $remainingTokens The list of remaining tokens
@return array The name of the option mapped to its value
@throws RuntimeException Thrown if the option could not be parsed
Parses a long option token and returns an array of data