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