Pxxo_Registry est une classe qui regroupe des paramètres globaux à toute l'application. L'utilisateur peut définir ses propres paramètres mais peut aussi redéfinir de nombreux paramètres génériques. Cette classe remplace avantageusement les définitions de constantes.
Vous pouvez consulter un sujet de présentation sur Pxxo_Config (dont Pxxo_Registry est l'héritière) sur la liste de diffusion.
Une instance globale et partagée de Pxxo_Registry est disponible pour tous les widgets au travers da la variable de classe $this→Registry.
Voici une liste des principaux paramètres génériques de Pxxo_Registry :
| path | AUTO | Chemin physique de la racine de l'application |
| name | AUTO | Nom physique (au sens UNIX) de l'application |
| language | AUTO | Langue par défaut de l'application |
| temp_path | AUTO | Répertoire temporaire |
| class_path | - | Liste des chemins (genre include_path) pour trouver les classes Pxxo |
| cache_path | AUTO | Chemin Physique vers le répertoire de cache |
| cache_level | - | Niveau du cache. 0 désactivé, etc… |
| debug_level | 0 | Niveau de debug ( 0 désactivé, 1 : code HTML non "compressé et report de toutes les erreurs PHP, 2 : active la trace pxxo, 3 : active le profiler) |
| session_flag | false | Le mode Session est-il activé ? (true/false) |
| session_auto | false | Les sessions sont-elle activées automatiquement ? (true/false) |
| theme_name | - | Nom du thème par défaut pour tout les widgets |
| theme_path | - | Liste des chemins d'accès aux thèmes (séparés par le caractère ":") |
| templates_path | - | Chemin physique du répertoire contenant les templates (html) et leurs fichiers associés (js, css, images, etc…) |
| resources_path | AUTO | chemin vers un répertoire physique où seront générées les ressources |
| resources_url | AUTO | url correspondant au répertoire physique des ressources |
| url_host | AUTO | l'URL vue par le navigateur sans le chemin et l'éventuel script terminal. Exemple: "http://localhost" |
| url_root | AUTO | Chemin dans l'URL vue par le navigateur vers la racine de l'application. Exemple : "monapplication/" ou "" (vide) dans le cas où l'application n'est pas dans un sous-répertoire |
| url_base | AUTO | URL complète vers la racine de l'application (concaténation de url_host et url_root). Exemple : "http://localhost/monapplication/" |
| url_script | AUTO | Chemin ou script exécuté du point de vue du navigateur. Exemples : soit un fichier existant sur le serveur "index.php", soit un chemin virtuel créé par règles de réécritures "authenticate/register" ou "export/html" |
| url_query | AUTO | Paramètres GET vues par le navigateur (historique "QUERY_STRING"). Exemple : "action=monaction¶m=bidon" |
| url | AUTO | URL complète vue par le navigateur (concaténation de url_base et url_script et url_query). Exemple: "http://localhost/monapplication/index.php?action=monaction¶m=bidon" |
Pour ajouter une donnée, il suffit d'affecter une variable à $this→Registry.
Exemple :
$o = new My_Widget(); $o->Registry->pdo = new PDO(...)
De la même manière ou y accède en utilisant le nom de variable dans $this→Registry.
Exemple:
$pdo = $this->Registry->pdo;
Quand on ne peut accéder à la variable $this→Registry on peut utiliser les méthodes statiques Pxxo_Registry::get() et Pxxo_Registry::set(k, v).
Exemple :
Pxxo_Registry::set('pdo',new PDO(...)); $pdo = Pxxo_Registry::get('pdo');
On peut également récupérer l'instance de l'objet lui-même en utilisant la méthode statique Pxxo_Registry::getInstance()
Exemple :
$config = Pxxo_Registry::getInstance(); $config->pdo = new PDO(...)