定制 wiistriker/composer-override-reqs-plugin 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

wiistriker/composer-override-reqs-plugin

最新稳定版本:1.0.0

Composer 安装命令:

composer require wiistriker/composer-override-reqs-plugin

包简介

Plugin to override composer package requirements

README 文档

README

Latest Stable Version Latest Unstable Version Total Downloads License

Русская версия | English version

Русская версия

Для чего этот плагин?

Иногда при работе с Composer возникает проблема: некоторые пакеты имеют слишком жёсткие ограничения по версиям зависимостей.
Например, пакет dama/doctrine-test-bundle:6.7.5 требует:

"symfony/cache": "^4.4 || ^5.3 || ^6.0",
"symfony/framework-bundle": "^4.4 || ^5.3 || ^6.0"

Это означает, что пакет можно установить только вместе с Symfony 4.4, 5.3 или 6.0.
Однако на практике часто бывает так, что пакет вполне работает и с промежуточными версиями, например Symfony 5.0–5.2.

Как можно обойти ограничение?

Существуют стандартные варианты, но у них есть недостатки:

  • Использовать as в require
    Например:

    "symfony/cache": "5.0.11 as 5.3.14"

    Минус: нужно указывать точные версии вручную.

  • Форкнуть репозиторий
    Внести правки и подключить его через repositories.
    Минус: придётся поддерживать собственный форк.

Если по каким-то причинам эти методы вам (как и мне), не подошли, то можно попробовать данный плагин. Минус у данного плагина в том, что он использует Reflection, поэтому не гарантируется работа при выходе новых версий composer.

Установка и настройка

Установите плагин:

composer require --dev wiistriker/composer-override-reqs-plugin

Добавьте в composer.json секцию extra.requirements-override.override:

{
    "require": {
        "symfony/cache": "5.0.*",
        "dama/doctrine-test-bundle": "*"
    },
    "extra": {
        "requirements-override": {
            "override": {
                "dama/doctrine-test-bundle": {
                    "6.7.5": {
                        "symfony/cache": "^4.4 || ^5.0 || ^6.0",
                        "symfony/framework-bundle": "^4.4 || ^5.0 || ^6.0"
                    }
                }
            }
        }
    }
}

После этого запустите:

composer update

Теперь dama/doctrine-test-bundle установится и на Symfony 5.0, так как зависимости были переопределены.

English version

What is this plugin for?

Sometimes Composer packages come with overly strict dependency constraints.
For example, dama/doctrine-test-bundle:6.7.5 requires:

"symfony/cache": "^4.4 || ^5.3 || ^6.0"

This means the bundle can only be installed with Symfony 4.4, 5.3, or 6.0.
But in reality, it would also work just fine with Symfony 5.0–5.2.

How can we bypass this?

Typical workarounds exist, but each has drawbacks:

  • Use as in require
    Example:

    "symfony/cache": "5.0.11 as 5.3.14"

    Drawback: you must specify exact versions manually.

  • Fork the repository
    Modify the dependency constraints and include it via repositories.
    Drawback: you need to maintain your own fork.

If, for some reason, these methods (just like for me) didn’t work for you, you can try this plugin instead.
The downside of this plugin is that it relies on Reflection, so compatibility with future Composer releases is not guaranteed.

Installation & Usage

Install the plugin:

composer require --dev wiistriker/composer-override-reqs-plugin

Then add the extra.requirements-override.override section in your composer.json:

{
    "require": {
        "symfony/cache": "5.0.*",
        "dama/doctrine-test-bundle": "*"
    },
    "extra": {
        "requirements-override": {
            "override": {
                "dama/doctrine-test-bundle": {
                    "6.7.5": {
                        "symfony/cache": "^4.4 || ^5.0 || ^6.0",
                        "symfony/framework-bundle": "^4.4 || ^5.0 || ^6.0"
                    }
                }
            }
        }
    }
}

Finally, run:

composer update

Now dama/doctrine-test-bundle will install even with Symfony 5.0, since the dependency constraints were overridden.

统计信息

  • 总下载量: 1
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-08-31