61 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace nur\data\expr;
 | |
| 
 | |
| /**
 | |
|  * Interface IContext: un contexte à partir duquel sont accédées certaines
 | |
|  * données
 | |
|  */
 | |
| interface IContext {
 | |
|   /** schéma d'une représentation d'un contexte sous forme de tableau */
 | |
|   const SCHEMA = [
 | |
|     "sources" => [null, null, "sources des données de ce contexte", true],
 | |
|     "exprs" => [null, null, "liste des expressions définies dans ce contexte", true],
 | |
|     "conds" => [null, null, "liste des expressions conditionnelles définies dans ce contexte", true],
 | |
|   ];
 | |
|   /** schéma d'une description de source sous forme de tableau */
 | |
|   const SOURCE_SCHEMA = [
 | |
|     "name" => [null, null, "identifiant de la source de donnée", true],
 | |
|     "title" => [null, null, "description de la source de donnée, pour affichage", false],
 | |
|   ];
 | |
|   /** schéma d'une description d'une expression sous forme de tableau */
 | |
|   const EXPR_SCHEMA = IExpr::SCHEMA;
 | |
|   /** schéma d'une description d'une condition sous forme de tableau */
 | |
|   const COND_SCHEMA = IExpr::SCHEMA;
 | |
| 
 | |
|   /**
 | |
|    * @return array des informations sur ce contexte, sous la forme d'un tableau
 | |
|    * conforme au schéma {@link IContext::SCHEMA}
 | |
|    */
 | |
|   function getContextInfos(): array;
 | |
| 
 | |
|   /** @return mixed obtenir la valeur correspondant au chemin */
 | |
|   function getValue(string $pkey);
 | |
| 
 | |
|   /** @return mixed obtenir la valeur de la session correspondant au chemin */
 | |
|   function getSession(string $pkey);
 | |
| 
 | |
|   /** @return mixed obtenir la valeur de configuration correspondant au chemin */
 | |
|   function getConfig(string $pkey);
 | |
| 
 | |
|   /**
 | |
|    * appeler la méthode spécifiée et retourner le résultat de l'appel.
 | |
|    *
 | |
|    * La méthode peut être dans un des formats suivants:
 | |
|    * - "Class::method" ou ["Class", "method"] pour appeler une méthode statique
 | |
|    * de la classe spécifiée
 | |
|    * - "::method", ["method"] ou [null, "method"] pour appeler une méthode
 | |
|    * statique de la classe par défaut
 | |
|    * - "->method", ["->method"] ou [anything, "->method"] pour appeler une
 | |
|    * méthode de l'objet par défaut
 | |
|    *
 | |
|    * La classe et l'objet par défaut sont déterminés par le contexte.
 | |
|    *
 | |
|    * Si $method est un tableau, il peut contenir des éléments supplémentaires
 | |
|    * qui sont considérés comme des arguments de l'appel, e.g:
 | |
|    *     $context->callMethod(["MyClass", "method", "hello", "world"]);
 | |
|    * est équivant à:
 | |
|    *     MyClass::method("hello", "world");
 | |
|    */
 | |
|   function callMethod($method);
 | |
| }
 |