<?php
namespace nulib\schema\input;

#XXX implémenter le renommage de paramètres et faire des méthodes pour
# construire des querystring et paramètres de formulaires
use nulib\php\access\FormAccess;
use nulib\php\access\IAccess;
use nulib\php\access\ShadowAccess;

/**
 * Class FormInput: accès à des paramètres de formulaire (POST ou GET, dans cet
 * ordre)
 *
 * cette implémentation lit depuis les paramètres de formulaire et écrit dans
 * une référence
 */
class FormInput extends Input {
  const ALLOW_EMPTY = false;

  function __construct(&$dest=null, ?array $params=null) {
    parent::__construct($dest, $params);
    $this->access = new ShadowAccess($this->formAccess($this->access), $this->access);
  }

  protected function formAccess(IAccess $access): IAccess {
    return new FormAccess(null, [
      "allow_empty" => $access->isAllowEmpty(),
    ]);
  }
}
