<?php namespace nur\v\model; /** * Interface IComponent: composant affichable avec un cycle de vie et des * resources associées */ interface IComponent extends IPlugin { ## /** préparer les objets dont a besoin ce composant pour s'initialiser */ function beforePrepare(): void; /** préparer les objets dont a besoin ce composant pour s'initialiser */ function prepare(): void; /** marquer le composant comme préparé */ function afterPrepare(): void; /** tester si le composant a déjà été préparé */ function didPrepare(): bool; ## /** fournir à ce composant les paramètres courants */ function beforeConfig(array &$config): void; /** fournir à ce composant les paramètres courants */ function config(array &$config): void; /** marquer les paramètres comme synchronisés */ function afterConfig(): void; /** tester si les paramètres ont été synchronisés */ function didConfig(): bool; /** obtenir une valeur de la configuration */ function configGet(string $name); ## /** initialiser le composant */ function beforeSetup(): void; /** initialiser le composant */ function setup(): void; /** marquer le composant comme initialisé */ function afterSetup(): void; /** tester si le composant a déjà été initialisé */ function didSetup(): bool; ## /** * ce composant affiche-t-il un contenu? * * si cette méthode retourne false, seule l'initialisation du composant est * effectuée. */ function haveContent(): bool; ## /** libérer les resources utilisées par le composant */ function beforeTeardown(): void; /** libérer les resources utilisées par le composant */ function teardown(): void; /** marquer le composant comme libéré */ function afterTeardown(): void; /** tester si le composant a déjà été libéré */ function didTeardown(): bool; }