La casse dans le nom des classe statiques du framework est importante.

Par exemple :

  • JToolBarHelper ira chercher un fichier dans le dossier ./libraries/(cms|joomla|legacy)/tool/bar/helper.php
  • alors qu'un appel à JToolbarHelper utilisera ./libraries/(cms|joomla|legacy)/toolbar/helper.php.

Jusqu'aux version < 3.9 en front on devait charger manuellement en front le fichier de la classe par exemple :

require_once JPATH_ADMINISTRATOR . '/includes/toolbar.php';

ou aussi :

if(!class_exists('JToolbar')) {
require_once JPATH_SITE . '/libraries/cms/toolbar/toolbar.php';
}
if(!class_exists('JToolbarHelper')) {
require_once JPATH_SITE . '/libraries/cms/toolbar/helper.php';
}

 Le fichier ./administrator/includes/toolbar.php n'existe plus à partir de la version 3.9.

Le chargement est automatique à condition de bien respecter la casse JToolbarHelper (le b de bar en minuscules) lors des appels.
par exemple : JToolbarHelper::divider();

Le framework effectue alors le chargement du ficher, si nécessaire.