PHP Composer требует зависимости, если * условие *

Я не уверен, что ваш подход к перевороту цифр гарантированно найдет наибольшее число next (по крайней мере, не без дальнейших проверок)

Здесь простое решение: просто увеличивайте номер входа и проверить, соблюдены ли условия или если номер не найден.

set() можно использовать для получения набора уникальных цифр в номере.

input_num = '781623954'
next_num = int(input_num) + 1
input_digits = set(input_num)
found = False
while not found:
    next_num += 1
    next_digits = set(str(next_num))
    found = len(next_digits) == 9 and input_digits == next_digits
    if next_num > 987654321:
        break

if found:
    print(next_num)
else:
    print("No number was found.")
1
задан Julien Bourdeau 13 July 2018 в 22:37
поделиться

1 ответ

Вы не можете сделать это непосредственно в качестве ограничений в своем composer.json. Однако вы можете добиться этого, создав пакет мостов, который может определять разные зависимости для разных версий, которые могут иметь разные требования.

Таким образом, вы можете создать пакет me/guzzle-wrapper и:

  1. версия 1.0.0 с composer.json:
    {
        "name": "me/guzzle-wrapper",
        "require": {
            "php": "<5.5",
        }
    }
    
  2. Тег 2.0.0 с composer.json:
    {
        "name": "me/guzzle-wrapper",
        "require": {
            "php": ">=5.5",
            "guzzlehttp/guzzle": "^6.3"
        }
    }
    

Поэтому вместо этого требуется guzzlehttp/guzzle, вы можете использовать этот мета-пакет - в зависимости от вашей версии PHP Composer установит 2.0.0, который требует Guzzle или 1.0.0, который ничего не требует.

Но если ваш пакет способен работайте без Guzzle, возможно, вы должны перенести это требование в раздел suggest?

1
ответ дан rob006 17 August 2018 в 12:06
поделиться
  • 1
    Я думаю, что это хорошее решение. Я бы предпочел сохранить все в одном хранилище, но я подумаю об этом. Сначала я подумал о том, что у меня 2 отдельных пакета и требуется виртуальный пакет (например, httplug), но он чувствовал себя очень надработанным ^^ Спасибо! – Julien Bourdeau 16 July 2018 в 16:34
  • 2
    Кстати, Хорди (создатель композитора) написал по электронной почте, что это будет лучшее решение – Julien Bourdeau 16 July 2018 в 22:29
Другие вопросы по тегам:

Похожие вопросы: