nur-sery/nur_src/v/model/IPageContainer.php

42 lines
1.1 KiB
PHP

<?php
namespace nur\v\model;
use nur\b\coll\BaseArray;
use Throwable;
/**
* Class IPageContainer: un conteneur de page, de composants et de plugins, qui
* se charge de les organiser et de les afficher
*/
interface IPageContainer {
/** obtenir la configuration courante */
function getConfig(): array;
/** obtenir les paramètres partagés */
function getParams(): BaseArray;
/**
* Enregistrer un composant ou un plugin, en le nommant éventuellement.
* Retourner l'instance ajoutée
*/
function addPlugin($plugin, ?string $name=null): IPlugin;
/** spécifier le composant de page à afficher */
function setPage(IPage $page): void;
/** retourner true si cet objet a commencé à afficher ses composants */
function haveOutput(): bool;
/** tester si la page cournte est en erreur */
function haveError(): bool;
/** spécifier l'erreur pour la page courante */
function setError(?string $message, ?Throwable $exception=null): void;
/** @return array|null l'erreur courante */
function getError(): ?array;
/** afficher la page */
function print(): void;
}