web-dev-qa-db-fra.com

Utiliser une bibliothèque externe avec un composant

Mon composant utilise la bibliothèque phpExcel. Je l'ai mis dans /libraries/phpexcel/Classes. Ceci est une bibliothèque indépendante (et assez grande), donc j’ai pensé qu’il serait sage de dire à l’administrateur où le placer avant l’installation du composant. Et dans le script d'installation du composant, vérifiez l'existence de la bibliothèque.

J'importe la bibliothèque en utilisant ce code:

jimport('libraries.phpexcel');
//Include PHPExcel classes
JLoader::import('phpexcel.Classes.PHPExcel');
JLoader::import('phpexcel.Classes.PHPExcel.IOFactory');

Est-ce la bonne façon d'utiliser une bibliothèque externe?

4
user4035

Si vous n'utilisez jamais une bibliothèque dans un seul composant, il n'y a aucune raison de ne pas l'inclure dans un dossier du composant - c'est ainsi que les composants distribués le gèrent généralement. Cela étant dit, vous pouvez mettre ce que vous voulez dans le dossier libraries et cela ne dérange pas Joomla, le problème est de savoir comment charger les classes. Joomla vous permet de charger automatiquement via des préfixes ou des espaces de noms comme ceci:

https://docs.joomla.org/Using_own_library_in_your_extensions

Mais si vous souhaitez utiliser un autochargeur composer pour les packages externes avec votre composant), cette approche peut vous intéresser ici:

Comment ajouter un package composer sans modifier le fichier core composer.json

Espérons qu'une de ces approches conviendra.

5
jamesgarrett