it-swarm-eu.dev

Utilizzo della libreria esterna con un componente

Il mio componente utilizza la libreria phpExcel; L'ho inserito in /libraries/phpexcel/Classes. Questa è una libreria indipendente (e abbastanza grande), quindi ho pensato che sarebbe saggio dire all'amministratore dove metterlo prima dell'installazione dei componenti. E nello script di installazione del componente controlla l'esistenza della lib.

Importa la libreria usando questo codice:

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

È il modo corretto di utilizzare una libreria esterna?

4
user4035

Se usi sempre una libreria all'interno di un singolo componente, non c'è motivo di non includerla in una cartella nel componente: questo è il modo in cui i componenti distribuiti generalmente la gestiranno. Detto questo, puoi mettere tutto ciò che ti piace nella cartella delle librerie e Joomla non ti dispiacerà, il problema è come si procede per caricare le classi. Joomla ti permette di caricare automaticamente tramite prefissi o spazi dei nomi come questo:

https://docs.joomla.org/Using_own_library_in_your_extensions

Ma se desideri utilizzare un composer autoloader per pacchetti esterni con il tuo componente, potresti essere interessato a questo approccio qui:

Come aggiungere un composer senza modificare il file core composer.json

Speriamo che uno di questi approcci sia adatto.

5
jamesgarrett