ArtifactoryでPHP Composer v2のリポジトリを扱う

もしあなたがPHPを使用しているプロフェッショナルな開発者の約4人に1人である場合(StackOverflowの2021年の調査による),作曲家のメンテナはPHPパッケージマネージャをv1からv2に移行して欲しいと考えています。

2020年10月24日にComposer 2.0.0がリリ,スされ,いくかの大幅な改良が加えられました。インターネット上の10個のウェブサイトのうち約8個が何らかの形でPHPを使用しているため,大きな影響を与える変更となります。

Artifactory 7.24へのアップデ,トにより,すべてのPHPリポジトリでv1とv2の両方の標準規格がサポトされますので,このマグレションに役立ます。

PHP Composer V2

新バージョンの作曲家はPHPの依存関係を解決するために,スピードとメモリ使用量の両方で最大50%のパフォーマンス向上をもたらす大規模なオーバーホールを行っています。その中には新しいv2リポジトリのメタデータフォーマットや,APIを通してベンダーやタイプ別にパッケージをリストする機能が含まれています。

v2への移行を促進するために,プラescマリのPHP的作曲家レジストリとメンテナであるpackagistは2021年5月に以下のような制裁措置を講じてComposer 1.xの非推奨化を開始しました。

  • v1メタデタのAPI更新率の削減

新しいバジョンのアップデト率が従来の1分毎から15分毎に変更されました。これにより,Composer 1.xでのンストルに数分を要するようになりました。

  • v1メタデタAPIによる未使用パッケジへのアクセスを制限

v1フォーマットは非常に長いファイルリストを使用するため,何百万ものパッケージを維持することはプロセスのパフォーマンスに影響を与えます。この問題を解決するために,packagistは過去4ヶ月間ダウンロードされていない全パッケージをv1インデックスから(ローリングベースで)隠します。

ArtifactoryのPHP Composer V2とV1

多くのPHP開発者がそうであるように,あなたのチームもpackagistのような公開リポジトリにあるオープンソースの依存関係を利用するだけでなく,相当な独自の作曲家パッケージのライブラリを構築しているでしょう。

そのため,Artifactoryではローカルおよびリモートのリポジトリでv1とv2の両標準をサポートし,ご自身のペースで作曲家v2へ移行できるようにしています。

Artifactory 7.24以降のすべてのPHP Composerリポジトリは以下のv2機能をサポトしています。

  1. Composer v2メタデタAPI(ロカルとリモトリポジトリ)
  2. ComposerリストAPI(ロ,カルとリモ,トリポジトリ)
  3. Drupal 7/8レジストをリモ,トリポジトリでサポ,ト

これにより,packagistがArtifactoryのリモートリポジトリで機能し,v1の削減を推進できます。

Artifactory Composerリポジトリの設定

必要であればローカルのArtifactoryリポジトリでも,v1とv2の両インデックスを維持し,作曲家v1をサポートします。

Artifactoryインスタンスを7.24以降にアップデート後,既存のローカル作曲家リポジトリはデフォルトでv1とv2の両方をサポートします。これにより,v2への移行を行う場合もチ,ムは引き続きv1のComposerを使用できます。

ただし,新しく作成したロ,カルComposerリポジトリはデフォルトではv2のみをサポ,トします。

作曲家v1の有効化と無効化

PHPリポジトリ設定に作曲家v1のインデックス作成を有効/無効にするオプションを追加しました。

在Artifactory中设置PHP Composer存储库

そのため,デフォルトの設定がお気に召さない場合は変更もできます。また,チームがv2に完全に移行するのに合わせて,リポジトリでのv1のサポートを終了することもできます。

v1▪▪ンデックスは,い▪▪でもリポジトリの設定で有効/無効を切り替えられます。ただし,この変更を有効にするためにはリポジトリの再。その場合は,工件リでリポジトリを右クリックし,重新计算指数を実行します。

重新索引PHP Composer存储库

作曲家リポジトリ構成

リポジトリで作曲家v1インデックスが有効になっている(インデックス化されている)場合,Artifactoryはv1 (p)とv2(p2)の2のンデックスセットを維持します。このようにして,Composer v1とv2の両方がサポ,トされます。

PHP Composer v1和v2

给我介绍で表示されたURLを利用し,“jsonファイルでローカルリポジトリを作曲家コマンドラインのデフォルトリポジトリとして設定します。

{" repositories ": [{"type": "composer", "url": "https://localhost:8081/artifactory/api/composer/php-local"} {" packagist ": false}]}

ArtifactoryのAPIを使用し,メタデータの取得やパッケージ名の一覧表示に必要なURLを取得できます。

得到artifactory / api /作曲家/ php-local / packages.json

例えば上記のコマンドでは次のようなレスポンスが得られます。

{“搜索”:“https://localhost:8081/artifactory/api/composer/php-local/search.json?”Q =%query%&type=%type%", " providers-lazy-url ": "https://localhost:8081/artifactory/api/composer/php-local/p/%package%。Json ", " metadata-url: "https://localhost:8081/artifactory/api/composer/php-local/p2/%package。Json ", " list ": "https://localhost:8081/artifactory/api/composer/php-local/packages/list。json "}

“metadata-url”を使用した場合,パッケ,ジのv2メタデ,タを取得できます。

得到artifactory / api /作曲家/ php-local / p2 /独白/ monolog.json

PHP Composerを最新に保

これらのPHP作曲家の重要なアップデートはArtifactoryのパッケージ管理サービスを最新の状態に保つための継続的な取り組みです。これらの改善により,PHP Composerのパッケ,ジをご自身のペ,スでv2に対応できます。また,依存関係にあるpackagistのリモートリポジトリをすぐに運用し,パフォーマンスを維持できます。

最新バ,ジョンではPHP Composerのバ,チャルリポジトリを作成し,ローカル,リモート,その他のバーチャル作曲家v2リポジトリを単一の論理的なURLでアクセスできます。

これらは,お使いのArtifactoryを最新版にアップデ,トする強力な理由です。JFrog DevOps平台をまだお試しになっていない方は,ぜひ無料版をお試しください