29 lines
		
	
	
		
			910 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			910 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace nur\data\expr;
 | 
						|
 | 
						|
/**
 | 
						|
 * Interface IExpr: une expression à évaluer dans un contexte
 | 
						|
 */
 | 
						|
interface IExpr {
 | 
						|
  /** schéma d'une représentation d'une expression sous forme de tableau */
 | 
						|
  const SCHEMA = [
 | 
						|
    "value" => [null, null, "définition de l'expression", true],
 | 
						|
    "name" => [null, null, "identifiant de l'expression dans le modèle", true],
 | 
						|
    "title" => [null, null, "description courte de l'expression, pour affichage", false,
 | 
						|
      "desc" => "vaut [name] par défaut",
 | 
						|
    ],
 | 
						|
  ];
 | 
						|
 | 
						|
  /** obtenir la définition de l'expression, le cas échéant */
 | 
						|
  function getValue(): ?string;
 | 
						|
 | 
						|
  /** obtenir l'identifiant de l'expression */
 | 
						|
  function getName(): string;
 | 
						|
 | 
						|
  /** obtenir une description courte de l'expression, pour affichage */
 | 
						|
  function getTitle(): string;
 | 
						|
 | 
						|
  /** évalue l'expression dans le contexte spécifié et retourne sa valeur */
 | 
						|
  function eval(IContext $context);
 | 
						|
}
 |