J'ai créé un fichier d'aide test.php
Comme suit:
administrateur/composants/com_compname/helpers/test.php
class TestHelper{
//class methods
}
Dans controllers/subcontrollername.php Nous pouvons utiliser l'un ou l'autre:
1) require_once(JPATH_COMPONENT.DIRECTORY_SEPARATOR.'helpers'.DIRECTORY_SEPARATOR.'test.php' );
2) JLoader::register('TestHelper','/path/to/test.php');
Mais je me demande lequel des deux est approprié et pourquoi ou si cela importe ou non. Quelqu'un peut-il me guider s'il vous plaît à ce sujet.
En fait, JLoader::register('TestHelper','/path/to/test.php');
ne charge pas le fichier, il l'enregistre simplement pour pouvoir charger automatiquement le fichier si la classe est instanciée.
Vous en avez besoin instantanément, vous voulez utiliser:
JLoader::import('TestHelper','/path/to/test.php');
Remarque: pour cela, votre nom de fichier doit être TestHelper.php
.
qui va
include_once
Le fichier s'il existe (avec require_once
Vous obtiendrez PHP, si cela n'existait pas. À présent, vous obtiendrez une jolie erreur Joomla!) .
Rappelons-nous que ce fichier est déjà chargé et ne le fera plus include_once
. Cela entraîne un gain de performance mineur.
qui ne sera pas
JLoader::register()
votre classe, vous ne pouvez donc pas utiliser JLoader::load()
plus tard.en tout:
*Helper
.).Exemple de notation par points
jimport('sub.path.classname','/path/to/')
serait include_once
fichier dans /path/to/sub/path/classname.php
NOTE
JLoader::import('TestHelper','/path/to/test.php')
a la sténographie
jimport('TestHelper','/path/to/test.php')