<?php
namespace nur\sery\web\params;

use nur\sery\cl;
use nur\sery\str;

/**
 * Class G: gestion des paramètres $_GET
 */
class G {
  /** tester si le paramètre $name existe */
  static final function has($name): bool {
    if ($name === null || $name === false) return false;
    return array_key_exists($name, $_GET);
  }

  /** obtenir le paramètre $name */
  static final function get($name, $default=null, bool $trim=false) {
    $value = cl::get($_GET, $name, $default);
    if ($trim) $value = str::trim($value);
    return $value;
  }

  /** modifier le paramètre. */
  static final function set(string $name, ?string $value): void {
    $_GET[$name] = $value;
  }

  static final function xselect(?array $includes, ?array $excludes=null, ?array $merge=null): array {
    return cl::merge(cl::xselect($_GET, $includes, $excludes), $merge);
  }
}
