Как да управлявате нивото на стабилност на зависимостта в Composer, блог за кодиране на хамстери

Един от доста често срещаните проблеми, които може да срещнете при работа с Composer, е объркване с определянето на нивото на стабилност на зависимостите от стабилността.

Типична ситуация, при която приложението зависи от пакет A: dev-master, което от своя страна зависи от пакет B: dev-master, кара Composer да се закълне, че не може да намери подходяща версия на пакет B .

Нека се опитаме да разберем защо това се случва и как да го поправим.

Root пакет

Във файла composer.json има такова нещо като параметри само за root. Това са опции, които се броят само за основния пакет. Вашите зависимости composer.json файлове игнорират тези опции.

Основният пакет е директорията, в която се намира файлът composer.json и където стартирате инсталацията на composer. Най-често това е основната директория на вашето приложение.

Но основният пакет също е контекст. Например имате пакет A, посочен във вашите зависимости. Докато сте в основната директория на вашето приложение, вашият пакет също е root. Но когато cd към директорията на пакет A, тогава в този контекст пакет A ще стане коренът .

И така, нивото на стабилност се задава от основния пакет и само от него.

минимална стабилност

Параметърът за минимална стабилност се използва за задаване на желаното ниво на стабилност за всички ограничения. Това е параметър само за корен и работи като долен разделител.

зависимостта

Определяне на нивото на стабилност

Да се ​​върнем към ситуацията, описана в началото на статията: приложението зависи от пакета A: dev-master, което зависи от пакета B: dev-master .

нивото

Коренът composer.json изглежда така:

Когато изпълнява инсталирането на композитор, Composer ще изпълни следните стъпки:

Определя минималната стабилност. Тъй като параметърът не е изрично зададен, стойността по подразбиране ще бъде заменена - стабилна .