<?php
namespace nur\sery\wip\php\access;

/**
 * Class IGetter: une abstraction d'un objet qui permet d'obtenir une valeur
 */
interface IGetter {
  /**
   * @return bool true si la valeur existe, false sinon. ne pas tenir compte de
   * si la valeur est utilisable ou non
   */
  function exists(): bool;

  /** @return bool true si la valeur existe et est utilisable, false sinon */
  function available(): bool;

  /** @return mixed la valeur depuis la source */
  function get($default=null);
}