Résultat de la recherche faite dans tout le code de Dotclear ce matin
Searching 461 files for "(\$GLOBALS\['(.*)'\]|global \$(.*))" (regex, case sensitive) /inc/core_error.php: 9: global $code, $summary, $message; /inc/prepend.php: 443: global $__shutdown; /inc/admin/class.dc.admin.php: 129 * @deprecated Since 2.23, use dcCore::app()->lang instead 130 */ 131: $GLOBALS['_lang'] = &dcCore::app()->lang; ... 205 * @deprecated Since 2.23, use dcCore::app()->menu instead 206 */ 207: $GLOBALS['_menu'] = dcCore::app()->menu; ... 420 // Obsolete since 2.24, may be removed in near future 421: $GLOBALS['p_url'] = $value; /inc/admin/lib.dc.notices.php: 53 // Update transition from 2.22 to 2.23 54 if (version_compare(DC_VERSION, '2.23', '<')) { 55: global $core; 56 } else { 57 $core = dcCore::app(); .. 215 // Update transition from 2.22 to 2.23 216 if (version_compare(DC_VERSION, '2.23', '<')) { 217: global $core; 218 } else { 219 $core = dcCore::app(); /inc/core/class.dc.core.php: 370 * @deprecated Since 2.23, use dcCore::app()->resources instead 371 */ 372: $GLOBALS['__resources'] = &$this->resources; /inc/libs/clearbricks/_common.php: 39 * @deprecated since 1.3, use Clearbricks::lib()->autoload() instead 40 */ 41: $GLOBALS['__autoload'] = &$this->stack; /inc/libs/clearbricks/common/lib.l10n.php: 151 * Used by generated *.lang.php in old 3rd party modules 152 */ 153: $GLOBALS['__l10n'] = &self::$locales; ... 158 * Used by generated *.lang.php in old 3rd party modules 159 */ 160: $GLOBALS['__l10n_files'] = &self::$files; /inc/public/class.dc.public.php: 113 * @deprecated Since 2.24 114 */ 115: $GLOBALS['_page_number'] = 0; ... 140 * @deprecated Since 2.23, use dcCore::app()->ctx instead 141 */ 142: $GLOBALS['_ctx'] = dcCore::app()->ctx; ... 157 * @deprecated Since 2.23, use dcCore::app()->lang instead 158 */ 159: $GLOBALS['_lang'] = &dcCore::app()->lang; ... 224 * @deprecated Since 2.23, use dcCore::app()->cache['mod_files'] instead 225 */ 226: $GLOBALS['mod_files'] = dcCore::app()->cache['mod_files']; ... 233 * @deprecated Since 2.23, use dcCore::app()->cache['mod_ts'] instead 234 */ 235: $GLOBALS['mod_ts'] = dcCore::app()->cache['mod_ts']; ... 326 327 // Obsolete since 2.24, may be removed in near future 328: $GLOBALS['_page_number'] = $value;
Pour résumer :
/inc/core_error.php, on va laisser en place, cette page n’est utilisée qu’en cas d’erreur de démarrage de Dotclear, pas grand chose à préserver ici :
- $code
- $summary
- $message
/inc/prepend.php, liste des fonctions de rappel appelées à la fermeture1, pas besoin d’y toucher à ce stade :
- $__shutdown
/inc/admin/class.dc.admin.php, conservées pour assurer la compatibilité avec du vieux code :
- $_lang : utiliser
dcCore::app()->lang
- $_menu : utiliser
dcCore::app()->menu
- $p_url : utiliser
dcCore::app()->admin->getPageURL()
2
- $_lang : utiliser
/inc/admin/lib.dc.notices.php, conservée pour assurer la transition entre la 2.23 et la 2.24 (au moment de la mise à jour)
- $core : utiliser
dcCore::app()
- $core : utiliser
/inc/core/class.dc.core.php, conservée pour assurer la compatibilité avec du vieux code :
- $__resources : utiliser
dcCore::app()->resources
- $__resources : utiliser
/inc/libs/clearbricks/_common.php, conservée pour assurer la compatibilité avec du vieux code :
- $__autoload : utiliser
Clearbricks::lib()->autoload()
- $__autoload : utiliser
/inc/libs/clearbricks/common/lib.l10n.php, je n’ai aucun exemple d’utilisation de ces deux variables à part dans les fichiers compilés3 à partir des fichiers .po, je vais laisser en place pour l’instant :
- $__l10n
- $__l10n_files
/inc/public/class.dc.public.php, conservées pour assurer la compatibilité avec du vieux code :
- $_page_number : utiliser
dcCore::app()->public->setPageNumber()
etdcCore::app()->public->getPageNumber()
- $_ctx : utiliser
dcCore::app()->ctx
- $_lang : utiliser
dcCore::app()->lang
- $mod_files : utiliser
dcCore::app()->cache['mod_files']
- $mod_ts : utiliser
dcCore::app()->cache['mod_ts']
- $_page_number : utiliser
Voilà déjà une première liste pour mettre à jour vos plugins et thèmes4 si besoin, et qui rend le code un peu plus propre
:-)
-
Aucun exemple d’utilisation dans le code que j’ai sous la main et je n’ai pas eu vent d’un usage par quelqu’un depuis des années, si quelqu’un a des infos ? ↩︎
-
Et éventuellement
dcCore::app()->setPageURL()
, mais vous ne devriez pas en avoir l’usage normalement. ↩︎ -
À ce sujet il n’est pas impossible que je revienne un jour sur la gestion des traductions. ↩︎
-
N’oubliez pas, pour les thèmes, et si vous utilisez — ce que vous devriez faire — un espace de nom dans votre code PHP, de préfixer
dcCore
etClearbricks
d’un\
↩︎
1 De Philippe -
Le plugin dcProxyV2 est-il destiné à assurer une rétrocompatibilité pour les thèmes et plugins ?
2 De Franck -
Ce plugin est utilisé pour apporter une compatibilité avec les behaviors dont la signature a changé pour la 2.24, et pour quelques autres fonctions utilitaires.
Mais à mon avis ça ne suffira pas à résoudre tous les problèmes, en particulier avec le typage des arguments des fonctions de Dotclear.