Adapter son code pour la 2.24 n° 22

Comme hier on s’écarte un peu des modifications indispensables pour évoquer l’utilisation des variables globales sur les pages publiques du blog.

En effet j’ai entrepris, avec la 2.24, de réduire autant que possible ces dernières en ouvrant la possibilité de stocker celles-ci comme propriétés d’un objet disponible en permanence1.

L’objet en question, instancié dès le début du traitement d’une page publique — voir ci-dessous le code correspondant dans le fichier inc/public/prepend.php — est disponible avec dcCore::app()->public ; rien d’original, n’est-ce pas ?

// New public instance
dcCore::app()->public = new dcPublic();
dcCore::app()->public->init();

Cette nouvelle fonctionnalité a été implémentée pour conserver la « symétrie » de traitement avec la partie administration (voir le billet précédent à ce sujet), mais je n’ai, à ce jour, pas d’exemple d’usage sous la main, essentiellement parce que les variables publiques sont généralement stockées au niveau du contexte (voir ce billet).

Notez que ces propriétés ne peuvent être passées en paramètre que par valeur (et pas par référence) ; si besoin, passez par des variables intermédiaires avant de les restocker en propriété. Ceci est aussi valable lorsqu’un tableau, stocké en propriété, a besoin d’être modifié.


Il est donc recommandé d’utiliser cette nouvelle fonctionnalité pour vos variables personnelles ; notez que si vous ne le faites pas, tout fonctionnera normalement, mais ça sera juste un peu moins élégant :-)


  1. Ça permet en particulier d’éviter les collisions avec des variables de même nom déclarées ailleurs. ↩︎

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/15525

Haut de page