ホームページ > バックエンド開発 > PHPチュートリアル > Joomla でサードパーティの PHP ライブラリを接続する

Joomla でサードパーティの PHP ライブラリを接続する

Barbara Streisand
リリース: 2024-12-28 02:15:09
オリジナル
309 人が閲覧しました

PHP ライブラリは、プラグイン、コンポーネント モデル、モジュールなど、アプリケーション内のどこからでもアクセスできるため便利です。誰かがすでに同様の問題を解決し、それをライブラリとして設計し (さらには更新している)、このライブラリを Joomla に接続することは理にかなっています。たとえば、オンライン ストアの支払い方法を開発するには、支払いアグリゲーターの公式ライブラリが必要です。それとも、CRM の公式 PHP SDK に満足していますか?

作曲家

Joomla は Composer を直接操作することをサポートしていません。作業でライブラリを使用するには、それを Joomla 拡張タイプ ライブラリに「ラップ」してインストールする必要があります。本格的なプロジェクトでは、プロジェクトのすべてのコンポーネントのバージョンを修正するアプローチが採用されます。コードは複数回チェックされ、テストされ、本番環境で動作することが許可されています。

ライブラリを含むパッケージを作成し、必要な場所にインストールします。ライブラリの新しいバージョンがリリースされると、ラッパーを更新し、Joomla 拡張機能を使用するすべての利点 (CLI を含む標準的な方法で拡張機能を更新) を利用できます。更新などの前に、管理エリアで拡張機能の変更ログを確認してください。

Connecting third-party PHP libraries in Joomla
Joomla 5 に更新する前に、管理エリアで変更ログ拡張機能を表示してください。

Joomla、PSR、Symfony

Joomla は PSR 標準に準拠しているため、この点で作業すると便利です。一部の Symfony パッケージは Joomla コア (コンソール、文字列、vardumper、yaml、error-handler など) に含まれているため、突然さらに追加したくなった場合でも、それらは適合し、うまく機能します。 Joomla では、ライブラリ/ベンダーの Symfony コンポーネント以外に何が価値があるのか​​を確認できます。

サードパーティの PHP ライブラリを Joomla 拡張機能でラップするにはどうすればよいですか?

複雑なことは何もありません。ライブラリ ファイルは通常、src フォルダーにあります。このフォルダーの隣に、ドキュメント (manual.joomla.org) に従って Joomla 拡張機能の XML マニフェストを作成する必要があります。次に、すべてを zip アーカイブに圧縮するだけです。インストール可能です。

ライブラリを機能させるためにデータベース内に独自のテーブルが必要な場合は、インストールまたは更新中に SQL クエリを使用して必要なファイルを追加する必要があります。 Joomla 4 は名前空間で動作するため、拡張機能の XML マニフェストでこの名前空間を指定することが重要です。以下は、Joomla ライブラリの XML マニフェストの省略された例です。

タグは、アーカイブの src フォルダーが JPATH_SITE/libraries/Webtolk/Amocrm にコピーされることを意味します。 <ファイル>セクションでは、アーカイブから何を入力する必要があるかを示します。そして、WebtolkAmocrm名前空間 WebtolkAmocrm を JPATH_SITE/libraries/Webtolk/Amocrm の src フォルダーに登録する必要があると述べています。

重要な注意事項!

  • 実際、Joomla 4.2.7 より前では、タグ そのため、JLoader クラスを使用して onAfterInitialize イベント (Event Dispatcher) に名前空間を登録するシステム プラグインをライブラリ パッケージに追加する必要がありました。そのため、ライブラリとプラグインからパッケージを構築する必要がありました。 Joomla 4.2.7 以降、この問題は修正され、プラグインなしで実行できるようになりました。
  • これまでのところ、ライブラリの更新 = 再インストールです。 つまり、拡張機能が削除され、インストールされます。この決定は、Joomla 3.x のバージョンの深いところで行われました。なぜ? - PRの山の下に隠されています。探す必要があります。これがなぜ重要なのでしょうか?拡張機能をインストールすると、拡張機能の「レジストリ」、つまりデータベース内の #__extensions テーブルにエントリが作成されるためです。このテーブルには、TEXT 型の 2 つの列 (params とcustom_data) があります。そして、これはかなりの量のデータであることは認めざるを得ません。 JoomlaCMSHelperLibraryHelper を使用して一部のライブラリ パラメータをデータベースに保存する場合は、インストーラのこの動作を考慮して事前に保存し、ライブラリを更新するときに保存したパラメータを拡張機能のインストーラ スクリプトに追加し直す必要があります。

それに応じて、postflight() メソッドで、LibraryHelper::saveParams('Webtolk/Amocrm', $lib_params); を使用して、保存したパラメータを元に戻します。

  • ライブラリが機能するには、拡張機能マネージャーで有効にする必要があります (メニュー - システム - 管理 - 拡張機能)。
  • 多くの場合、ライブラリが動作するには特定のパラメータ (API キー、トークンなど) が必要であり、Joomla 管理領域のユーザーが指定する必要があります。 これらの目的のために、プラグインを作成すると便利です。 (拡張タイプ ライブラリには、パラメーターを構成するための独自のインターフェイスがありません)。システムのグループでも独自のカスタム グループでも問題ありません。ライブラリ内では、次のようにプラグイン パラメータを非常に迅速に取得できます。

Joomla コミュニティ リソース

  • https://joomla.org/
  • Mattermost の Joomla コミュニティ チャット
  • WebTolk Joomla 拡張機能
  • この記事はロシア語です

以上がJoomla でサードパーティの PHP ライブラリを接続するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート