Atomik 1.5 !!

Une nouvelle version dès le lendemain ! Bon je me suis décidé à ajouter les "déclencheurs", appelés "events" (évènements) dans le framework. On peut à peu près "hooké" de partout ! Du coup la plus part des fonctionnalités de base sont devenues des packages (mais qui restent activés par défaut). Le principe est qu'il faut "inscrire" une fonction à un évènement (ces-derniers peuvent être associés à plusieurs fonctions). Lorsque l'évènement sera déclenché, toutes les fonctions associés seront exécutées. Un design plutôt classique. Il n'a a donc pas de fonctions avec des noms pré-définie. Exemple:
events_register('my_event', 'my_function1');
events_register('my_event', 'my_function2');
events_fire('my_event'); // les deux fonctions précèdentes sont exécutées.
On peut aussi passer des paramètres aux fonctions:
events_fire('my_event', array('param1', 'param2'));
Il y a un paquet d'évènements qui sont déclenchés tout au long de l'exécution. Les packages sont maintenant tous architecturés autour de ce système. Par exemple:
function package_test()
{
    function my_func()
    {
        echo 'test';
    }
    events_register('core_before_print', 'my_func');
}
"test" sera affiché en haut de chaque page. Je vous laisse découvrir la nouvelle architecture des paquets dans le code. Le core lui même s'en trouve fortement réduit ! Comme je l'expliqua dans les commentaires du billet précédent, je ne veux pas qu'Atomik deviennent orienté objet. Ceci sera éventuellement réalisé dans une version distincte. C'est la raison pour laquelle les packages n'utilisent pas de classes. La chose reste donc au plus simple et je pense que le système d'évènements fera l'affaire. Il reste encore du debugage mais ça à l'air de marcher ;-) A propos d'un éventuel site, je devrais m'atteler à la tâche dans la semaine. Il y aura effectivement une section partage de packages (comme l'a proposé cperf3ct mais j'avais la même idée) et des tutos. ++

comments powered by Disqus

14/01/2008