nulib/php/src_output/IMessenger.php

97 lines
2.8 KiB
PHP

<?php
namespace nulib\output;
/**
* Interface IMessenger: un objet pouvant afficher des messages de l'application
*/
interface IMessenger {
const DEBUG = -1, MINOR = 0, NORMAL = 1, MAJOR = 2, NONE = 3;
const MIN_LEVEL = self::DEBUG, MAX_LEVEL = self::MAJOR;
/** réinitialiser les paramètres de l'objet */
function resetParams(?array $params=null): void;
/**
* créer une copie de cet objet avec éventuellement des paramètres différents
*/
function clone(?array $params=null): self;
/**
* commencer une section.
*
* flush tous les messages en cours. ne peut être imbriqué. on peut considérer
* que c'est une sorte de "reset" de l'objet
*/
function section($content, ?callable $func=null, ?int $level=null): void;
/**
* commencer un chapitre.
*
* peut être imbriqué dans un autre chapitre. terminer automatiquement
* l'action en cours avec un résultat neutre
*/
function title($content, ?callable $func=null, ?int $level=null): void;
/** ajouter une description au chapitre courant. */
function desc($content, ?int $level=null): void;
/**
* comencer une action dans le chapitre courant.
*
* peut être imbriqué dans une autre action.
*/
function action($content, ?callable $func=null, ?int $level=null): void;
/**
* ajouter une étape à l'action courante.
*
* démarrer une action le cas échéant (et la terminer aussitôt)
*/
function step($content, ?int $level=null): void;
/**
* terminer l'action courante avec le résultat "succès"
*
* démarrer une action le cas échéant (et la terminer aussitôt)
*/
function asuccess($content=null): void;
/**
* terminer l'action courante avec le résultat "échec"
*
* démarrer une action le cas échéant (et la terminer aussitôt)
*/
function afailure($content=null): void;
/**
* terminer l'action courante avec le résultat "neutre"
*
* démarrer une action le cas échéant (et la terminer aussitôt)
*/
function adone($content=null): void;
/** afficher une donnée non structurée */
function print($content, ?int $level=null): void;
/** afficher un événément "information" */
function info($content, ?int $level=null): void;
/** afficher un événément "information importante" */
function note($content, ?int $level=null): void;
/** afficher un événément "avertissement" */
function warn($content, ?int $level=null): void;
/** afficher un événément "erreur" */
function error($content, ?int $level=null): void;
/**
* terminer le chapitre en cours. toutes les actions en cours sont terminées
* avec un résultat neutre.
*
* @param bool $all faut-il terminer *tous* les chapitres ainsi que la section
* en cours?
*/
function end(bool $all=false): void;
}