ФорумПрограммированиеPHP для идиотов → Composer - реальни гавно или я тупой?

Composer - реальни гавно или я тупой?

  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 10 декабря 2013 г. 2:19, спустя 10 минут 3 секунды

    отрисовано по подобию старого форума, только вот старый форум уже морально устарел, сейчас любят меньше ссылок, больше больших понятных кнопок

  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 10 декабря 2013 г. 9:46, спустя 7 часов 26 минут 32 секунды

    Я если честно, с 2007 по 2010 незнал о кнопке той, потом случайно нажал и очень обрадовался

    Даже, помоему, подсмотрел у васяца как он пользуется форумом :-)

    Так что сейчас ссылка на своем месте

    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 10 декабря 2013 г. 10:55, спустя 1 час 9 минут 7 секунд

    а, вспомнил, раньше была кнопка "new" у названия темы, по ней переходило на непрочитанное

  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 10 декабря 2013 г. 15:28, спустя 4 часа 33 минуты 38 секунд

    Валите в свою тему! :)

    Composer больше похож, из того, что знаю, на npm в node.js
    И именно складывается ощущение, что взяли тот же npm и переписали на php не особенно вдаваясь в различие инфраструктуры. Но это так, первый взгляд дилетанта. Может он и крут, буду изучать.

    Спустя 71972 сек.

    Немного разобрался с ним на этой неделе.

    Резюме: вещь из разряда "если расслабиться, то можно получить удовольствие".

    Из минусов:
    - Жопеная документация
    - Сильно тормозит
    - Много недоделок. Например, рекурсивные зависимости тянутся только из стандартных реп, например, с гитхаба.

    А так, сам подход в принципе правильный, хотя для перехода на него многим придётся проводить работу над собой.

    Спустя 34 сек.

    Спустя 71972 сек.

    Может не склеивать через неделю то?
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 15 декабря 2013 г. 20:33, спустя 5 дней 5 часов 4 минуты

    Может не склеивать через неделю то?

    Fixed

    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 13 января 2014 г. 16:37, спустя 28 дней 20 часов 3 минуты

    Реквестирую Абырвалга!

    Компосером проникся, использую где только возможно.

    Но вот, используем мы Сонату. Там зависимостей чёрт ногу сломит.

    И вот какой-то чувак берёт и ломает к чертям устоявшийся интерфейс в одном из бандлов:
    https://github.com/sonata-project/SonataUserBundle/commit/ff0f5545289e28e15d2d31abadf86b5b783a9121

    Куча остальных бандлов падает, например:
    https://github.com/sonata-project/SonataBlockBundle/blob/master/Block/Service/MenuBlockService.php#L66

    Что делать? Как исправлять по феншую? Делать форк первой репы исправлять и делать форки всех зависимых бандлов, чтобы менять в них зависимости?

    Спустя 1360 сек.

    Ну то есть там не совсем так. По другому вопрос задам.

    Есть A, записит от B, который зависит от C, а тот от D.

    В D ошибка. Я делаю форк E и исправляю.
    Но C я не могу перепровязать на E, так как это не мой пакет. Мне нужно делать форк от C, чтобы поменять ссылку на D. А потом форк от B, чтобы поменять ссылку на новый C.

    Верно?
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 13 января 2014 г. 18:45, спустя 2 часа 8 минут 36 секунд

    Я тут)

    Да они там уже заебали ломать все в своей сонате! У меня с каждым долбанным апдейтом ее что-то валится. Причем же ж не обязательно это будет сразу видно, иногда мне через неделю люди пишут, что на такой-то странице 500-я.

    Но C я не могу перепровязать на E, так как это не мой пакет. Мне нужно делать форк от C, чтобы поменять ссылку на D. А потом форк от B, чтобы поменять ссылку на новый C.

    Нее, все не так сложно. Ты невнимательно читал раздел про aliases: http://getcomposer.org/doc/articles/aliases.md#require-inline-alias вот конкретно твой случай - symfony/monolog-bundle требует 1.0.x, а ты ему пихаешь какую-то свою ветку с исправлением под видом версии 1.0.x.

    По факту у меня сейчас вся соната в композере прописана вот так
    "sonata-project/doctrine-orm-admin-bundle": "dev-master#8709d5e4015761d985c6d4d29e4a9333ef6780c8",


    и я даже понятия не имею, от каких пакетов она там зависит).

    Спустя 33 сек.

    то есть прописал я эту строку - и все нужные ей пакеты автоматом подтянулись, а я в эту кухню не лезу.
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 13 января 2014 г. 19:58, спустя 1 час 12 минут 28 секунд

    магия!
    а я в эту кухню не лезу.

    вот это очень правильно. узнал как будет работать — больше это не трогай.

    (на всякий случай я буду делать zip с vendor, LOL)
    ιιlllιlllι унц-унц
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 17 января 2014 г. 14:52, спустя 3 дня 18 часов 54 минуты

    Ты невнимательно читал раздел про aliases

    окай, почетаю.

    А расскажи, как правильно сделать то, что сонатовцы сотворили по ссылке из первого поста?

    То есть у меня есть пакет, у него какой-то интерфейс и от него зависят другие пакеты.
    И мне взбрело в голову вдруг этот интерфейс изменить.

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

    Так?
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 17 января 2014 г. 15:03, спустя 10 минут 57 секунд

    че-то в таком духе
    package-one
    "extra": {
    "branch-alias": {
    "dev-master": "1.1.x-dev"
    }
    },

    package-two
    "require": {
    "php": ">=5.3.8",
    "vendor/package-one": ">=1.1,<1.2.x-dev"
    },


    Потом в package-one делаешь какие-то non-BC changes и ставишь "dev-master": "1.2.x-dev", а на версию 1.1 создаешь отдельную ветку, если нужна долгосрочная поддержка. Сам я такого пока не делал, не было нужды.

    Спустя 2556 сек.

    http://blog.versioneye.com/2014/01/15/which-programming-language-has-the-best-package-manager/
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 27 января 2014 г. 10:57, спустя 9 дней 19 часов 53 минуты

    это нормально, что компосер затаскивает в проект папки .git из каждого бандла? они же реально не используются, а занимают у меня ~200Мb и в перспективе могут откусить неограниченно дохуя. что-то здесь не так!
    ιιlllιlllι унц-унц
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 27 января 2014 г. 12:19, спустя 1 час 22 минуты 18 секунд

    Если через пакагист и гитхаб, то он через апи должен работать и не клонировать.


    Спустя 2825 сек.

    Доп. вопрос.
    composer.lock не должен же в репе быть?
    Почему его постоянно туда пихают?
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 27 января 2014 г. 14:13, спустя 1 час 53 минуты 57 секунд

    должен. Потому что там пробиты явные версии зависимостей, с которыми вы оттестировали приложение
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 27 января 2014 г. 14:21, спустя 8 минут 4 секунды

    у меня тогда другой вопрос: можно ли имея composer.json + composer.lock вкачать в точности тот же набор пакетов?
    ιιlllιlllι унц-унц
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 27 января 2014 г. 16:31, спустя 2 часа 9 минут 41 секунду

    оно так и будет работать, если ты на клиентах будешь запускать composer install а не composer update

Пожалуйста, авторизуйтесь, чтобы написать комментарий!