WP_CLI

Configurator::extract_assoc()public staticWP-CLI 1.0

Splits positional args from associative args.

Метод класса: Configurator{}

Хуков нет.

Возвращает

Массив(Массив).

Использование

$result = Configurator::extract_assoc( $arguments );
$arguments(массив) (обязательный)
-

Код Configurator::extract_assoc() WP-CLI 2.8.0-alpha

public static function extract_assoc( $arguments ) {
	$positional_args = [];
	$assoc_args      = [];
	$global_assoc    = [];
	$local_assoc     = [];

	foreach ( $arguments as $arg ) {
		$positional = null;
		$assoc_arg  = null;

		if ( preg_match( '|^--no-([^=]+)$|', $arg, $matches ) ) {
			$assoc_arg = [ $matches[1], false ];
		} elseif ( preg_match( '|^--([^=]+)$|', $arg, $matches ) ) {
			$assoc_arg = [ $matches[1], true ];
		} elseif ( preg_match( '|^--([^=]+)=(.*)|s', $arg, $matches ) ) {
			$assoc_arg = [ $matches[1], $matches[2] ];
		} else {
			$positional = $arg;
		}

		if ( ! is_null( $assoc_arg ) ) {
			$assoc_args[] = $assoc_arg;
			if ( count( $positional_args ) ) {
				$local_assoc[] = $assoc_arg;
			} else {
				$global_assoc[] = $assoc_arg;
			}
		} elseif ( ! is_null( $positional ) ) {
			$positional_args[] = $positional;
		}
	}

	return [ $positional_args, $assoc_args, $global_assoc, $local_assoc ];
}