He creado un archivo auxiliar test.php
De la siguiente manera:
administrador/componentes/com_compname/helpers/test.php
class TestHelper{
//class methods
}
En controllers/subcontrollername.php Podemos usar cualquiera de ellos:
1) require_once(JPATH_COMPONENT.DIRECTORY_SEPARATOR.'helpers'.DIRECTORY_SEPARATOR.'test.php' );
2) JLoader::register('TestHelper','/path/to/test.php');
Pero me pregunto cuál de los dos es apropiado y por qué o si esto importa o no. ¿Alguien puede guiarme en esto?.
En realidad, JLoader::register('TestHelper','/path/to/test.php');
no carga el archivo, solo lo registra para poder cargar automáticamente el archivo si se crea una instancia de la clase.
Lo requiere al instante, desea utilizar:
JLoader::import('TestHelper','/path/to/test.php');
Nota: para esto, su nombre de archivo debe ser TestHelper.php
.
que lo hará
include_once
El archivo si existe (con require_once
Obtendrías PHP error, si no existe. Ahora obtendrías un error bastante Joomla!) .
Recordará que este archivo ya está cargado y no volverá a include_once
. Esto da como resultado una ganancia de rendimiento menor.
que no
JLoader::register()
su clase, por lo que no puede usar JLoader::load()
más tarde.En general:
*Helper
).Ejemplo de notación de puntos
jimport('sub.path.classname','/path/to/')
sería el archivo include_once
en /path/to/sub/path/classname.php
NOTA
JLoader::import('TestHelper','/path/to/test.php')
tiene taquigrafía
jimport('TestHelper','/path/to/test.php')