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);
|
|
}
|