私のコンポーネントはphpExcelライブラリを使用しています。 /libraries/phpexcel/Classes
に入れました。これは独立した(そして非常に大きな)ライブラリなので、コンポーネントのインストール前にどこに置くかを管理者に伝えるのが賢明だと思いました。そして、コンポーネントのインストールスクリプトで、libの存在を確認します。
このコードを使用してライブラリをインポートします。
jimport('libraries.phpexcel');
//Include PHPExcel classes
JLoader::import('phpexcel.Classes.PHPExcel');
JLoader::import('phpexcel.Classes.PHPExcel.IOFactory');
外部ライブラリを使用する正しい方法ですか?
ライブラリを1つのコンポーネント内でのみ使用している場合は、ライブラリをコンポーネントのフォルダーに含めない理由はありません。これが、分散コンポーネントが一般的にライブラリを処理する方法です。そうは言っても、ライブラリーフォルダーには好きなものを置くことができ、Joomlaは気にしません。問題は、クラスのロード方法です。 Joomlaでは、次のようにプレフィックスまたは名前空間を介して自動ロードできます。
https://docs.joomla.org/Using_own_library_in_your_extensions
しかし、コンポーネントで外部パッケージにcomposerオートローダーを使用したい場合は、このアプローチに興味があるかもしれません:
composerコアcomposer.jsonファイルを変更せずにパッケージを追加する方法
うまくいけば、これらのアプローチの1つが適しています。