1. ホーム
  2. php

Composer: 最小安定度の異なる必須パッケージ

2023-11-20 15:31:49

質問

laravelのインストールで、以下のようなcomposer.jsonファイルがあります。

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "laravel/framework": "4.1.*"
    },
    "autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    },
    "minimum-stability": "stable"
}

sentryのバンドルに追加しようとしています。sentryのウェブサイトでは、私のcomposer.jsonファイルに以下を追加することでインストールできると書かれています。

{
    "require": {
        "cartalyst/sentry": "2.0.*"
    },
    "minimum-stability": "dev"
}

のように、現在のlaravelのものの末尾に新しいjsonオブジェクトを追加してみました。

...
},
{
    "require": {
        "cartalyst/sentry": "2.0.*"
    },
    "minimum-stability": "dev"
}

を実行すると composer update コマンドを実行して新しいパッケージを読み込むと、「新しいオブジェクトの追加は有効な json ではありません」というエラーが表示されます。

を追加すると cartalyst/sentry を既存の require オブジェクトに追加すると、Sentry パッケージを見つけることができません。これは、既存の requires に最小安定性値 stable .

sendry パッケージを別の require オブジェクトで指定する方法はありますか。 dev ?

どのように解決するのですか?

答えは、ただ @dev

{
    "require": {
        "cartalyst/sentry": "2.0.*@dev"
    },
}

あなたが読むことができるのは 最小限の安定性の設定について、詳しくは .

別の方法として、最小安定度をdevに設定し、可能な限りstableを使いたいことをcomposerに伝えます。

"minimum-stability": "dev",
"prefer-stable" : true

これは基本的に、安定版の依存関係をインストールする方法がない限り、 常に安定版を使用することを意味し、したがって dev を使用します。