La classe JHtml est un classe utilitaire pour preparer du code html.

La méthode _ est une méthode statique qui est en la porte d'entrée de tous les appels.

L'appel se fait ainsi : JHtml::_('Fichier.methode,x,y,...).

Elle exécutera la méthode statique "méthode" de la classe JHtmlFichier, trouvée dans le fichier.php dans un des chemins de recherche.
Le chemin par defaud étant /libraries/cms/html.

Cette syntaxe est aussi possible : JHtml::_('extension.fichier.methode,x,y,...); qui appellera la méthode extensionfichier::methode definie dans fichier.php

Tous les paramètres suivants x,y,z... seront passés à la méthode en question.

Pour rajouter des dossiers de recherche, donc ceux où vous aurez définis vos classe appelées par JHtml::_(), il faut utiliser la méthode JHtml::addIncludePath par exemple :

JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/html');

Ainsi on ira chercher la classe extensionfichier dans un fichier fichier.php qui sera situé dans le dossier helpers/html de votre composant.

Avec le passage à Joomla 4 en remplace JHtml par HTMLHelper avec l'instruction

use Joomla\CMS\HTML\HTMLHelper;

en début du fichier php.

Il semblerait (à tester) que l'on puisse utiliser indifféremment JHtml::_(fichier.methode) ou JHtmlFichier::methode(), sauf qu'avec la première les classes sont cherchées dynamiquement.
Vous n'avez donc pas besoin de déclarer les classes une par une au framework (par un JLoader::register), seule la déclaration du dossier (par le HTMLHelper::addIncludePath) est nécessaire.

 

Voir aussi :