web-dev-qa-db-ja.com

コンポーネントでの外部ライブラリの使用

私のコンポーネントはphpExcelライブラリを使用しています。 /libraries/phpexcel/Classesに入れました。これは独立した(そして非常に大きな)ライブラリなので、コンポーネントのインストール前にどこに置くかを管理者に伝えるのが賢明だと思いました。そして、コンポーネントのインストールスクリプトで、libの存在を確認します。

このコードを使用してライブラリをインポートします。

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

外部ライブラリを使用する正しい方法ですか?

4
user4035

ライブラリを1つのコンポーネント内でのみ使用している場合は、ライブラリをコンポーネントのフォルダーに含めない理由はありません。これが、分散コンポーネントが一般的にライブラリを処理する方法です。そうは言っても、ライブラリーフォルダーには好きなものを置くことができ、Joomlaは気にしません。問題は、クラスのロード方法です。 Joomlaでは、次のようにプレフィックスまたは名前空間を介して自動ロードできます。

https://docs.joomla.org/Using_own_library_in_your_extensions

しかし、コンポーネントで外部パッケージにcomposerオートローダーを使用したい場合は、このアプローチに興味があるかもしれません:

composerコアcomposer.jsonファイルを変更せずにパッケージを追加する方法

うまくいけば、これらのアプローチの1つが適しています。

5
jamesgarrett