Как стать автором
Обновить

Комментарии 6

Очень правильная статья о наболевшем. Периодически такие пакеты попадаются и «из коробки» вообще никак не работают, пока сам не поставишь зависимости вручную.
Этот посыл, кстати, просматривается и в оригинале.
Там в обсуждении говорят, что это оверхэд, однако он (автор поста) говорит, что наверняка есть какие-то инструменты для всего этого и вообще занимает это все не больше часа, но экономит кучу времени другим.

И что забавно — там же, в обсуждении оригинала, основной разработчик Gaufrette полностью поддержал пост и сказал, что такое должно быть с каждым их адаптером, но пока этого трудно добиться.

P.S. Надеюсь, нигде не попутал в переводе, особенно в последнем абзаце.
Кстати ссылка на оригинал на хабре появилась раньше, чем на phpweekly :)
Мне особо бесит то что среда сборки(выкачивания зависимостей) и деплоя вовсе не обязательно должна соответствовать среде исполнения(использующей зависимости). Но composer нам не дает норм.способа как-то убрать проблему, лишь целиком не качать вложенные зависимости.
Убедительная просьба — правильно пишите документацию к пакетам, забудьте про все это мутные ext-…
На мой взгляд автор не совсем прав. Есть множество подобных библиотек, которые создают обертки, которых нет в php. Например аналогом является doctrine/cache. Если для таких библиотек все провайдеры выносить в отдельные библиотеки — никакого времени на поддержку не хватит.
Я согласен что для конкретного случая банально не хватает документации — вы всегда можете помочь, отправив PR на ее добавление, изменения описания в suggest у composer.json.

Все что нужно сделать — добавить описание здесь github.com/KnpLabs/Gaufrette/blob/master/composer.json#L75, вместо *

Ну и если человек использует GridFs, он должен понимать, что это FS на базе монги, и есть огромная вероятность, что понадобится ext-mongo
Тут вроде куда глубже проблема уходит — разделение подобного рода это вопрос скорее умения выделять самостоятельные части из огромной библиотеки, а composer просто косвенно страдает от этого
Справедливая мысль. По-моему, есть один случай, когда зависимость всё же может быть опциональной. Это когда есть несколько либ с одним интерфейсом и нужно выбрать одну обязательно. Т.е. не совсем опциональная зависимость, а, скорее выбор одной обязательно из нескольких предложенных. Приведу пример не на PHP, но тут подойдёт. В ноде я мог бы выбрать между частично совместимыми пакетами Q/bluebird/другая promise-либа, или LoDash-compat/underscore, jQuery/Zepto. Но, в npm такой возможности тоже не обнаружено (там есть просто «опциональные» зависимости).
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории