web-dev-qa-db-ja.com

Joomla拡張機能でComposerとSymfonyを使用する方法は?

私は2008年からJoomla拡張機能を開発しています。ちょうど今日、Joomlaがコアライブラリ内でComposerSymfonyフレームワークを使用していることに気付きました。過去に見たことがありますが、二度と考えたことはありません。

私は世界で最も人気のある20を超えるJoomla拡張機能を備えたローカルテストウェブサイトを持っていますどれもコアのSymfonyを使用して、最小のタスクでさえ簡素化します。 Symfonyを使用しているのは1つだけですが、独自のカスタムlibrariesディレクトリ内に含まれています。だから、私は次の質問があります:

  1. 独自のライブラリディレクトリを作成せずにJoomla内でSymfonyを使用できますか?はいの場合、どのように?
  2. 追加のSymfonyコンポーネントを既存のSymfonyにインストールするだけでよいのではないでしょうか?そうでない場合、なぜ私たちはできないのですか?
  3. そのようなものがJoomla 4で計画されていると聞いたことはありますか?
3

Joomlaは、composerを使用して、追加したライブラリファイルを/ libraries/vendor /に維持しますJoomlaのコンポーザーを使用しないでください独自のcomposerライブラリ。Joomlaのcomposerライブラリも更新する可能性があり、Joomlaが分散バージョンと異なるため、Joomla Webサイトの動作が期待と異なる場合があります。これらのcomposerライブラリは、新しいJoomlaバージョンがリリースされたときにコアメンテナによってのみ更新されます。

はい、独自のJoomla拡張機能でcomposerを使用できます。独自の拡張フォルダにcomposerファイルを追加するだけです。独自の拡張フォルダで、

composer require vendor-name/package-name

そして、composer.jsonファイル、/ vendor/autoload.php、および/ vendor/composer/*内のファイルが作成されます。

拡張機能では、

require __DIR__ . '/vendor/autoload.php';
use \Vendor-name\PackageName;

そのため、composerによって追加されたインクルードライブラリのクラスを使用できます。

このメソッドを使用して、Joomlaプラグインに外部ライブラリを追加しました。 https://github.com/pe7er/plg_content_db8imageresize プラグインで使用したライブラリが破棄されていることに注意してください。ただし、私が使用した方法は引き続き使用できます。

2
pe7er