Пакеты Zend Framework Composer

Я хотел бы добавить зависимость к пакету zendframework/zend-db, поэтому добавил его в свой composer.json:

"repositories": [
    {
        "type": "composer",
        "url": "http://packages.zendframework.com/"
    }
],
"require": {
    "php": ">=5.3.2",

    "symfony/class-loader":  "dev-master",
    "symfony/console":       "dev-master",
    "symfony/filesystem":    "dev-master",
    "symfony/finder":        "dev-master",
    "symfony/locale":        "dev-master",
    "symfony/yaml":          "dev-master",
    "doctrine/dbal":         "dev-master",
    "zendframework/zend-db": "dev-master"
}

Проблема в том, что композитор устанавливает весь пакет zendframework/zendframework.

Есть идеи, почему?


person umpirsky    schedule 31.07.2012    source источник


Ответы (3)


Вот composer.json из zend-db в зенде на гитхабе. Судя по файлу, zend-db не имеет никаких зависимостей.

Это может быть связано с тем, что вы пытаетесь загрузить пакет с dev-master, а в composer.json dev-master есть несоответствие.

Я бы посоветовал вам изменить требуемую версию на что-то вроде 2.0.* и повторить попытку.


Кроме того, несмотря на то, что Zend Framework слабо связан, в более старых версиях фреймворка зависимости не были явными.

Например, быстро просмотрев исходный код zend_db из ZEND 1.9, я обнаружил, что он зависит как минимум от следующих пакетов:

  • Контроллер
  • Конфигурация
  • Фильтр
  • Джейсон
  • Загрузчик (для автозагрузки, я думаю, это может не понадобиться из-за автозагрузчика композитора)
  • Ури
  • Вид
  • Лесной пожар

Эти пакеты могут иметь другие зависимости, отсюда и размер загрузки. Тем не менее, как объяснил Кинг, Zend Framework 2.0 отличается от версии 1.9 и, возможно, это неприменимо к 2.0.

person Tivie    schedule 31.07.2012
comment
Насколько я знаю, через композитор доступен только ZF2, а db-компонент был переписан, поэтому зависимости от 1.9 не важны. И (относительно вашего редактирования): связанный composer.json устанавливает (самостоятельную) версию на 2.0.* (см. директиву branch_alias внизу) - person KingCrunch; 01.08.2012

как описано здесь http://packages.zendframework.com/#composer ZF2 теперь предоставляет репозиторий композитора с все модули.

чтобы добавить репо в ваш пакет:

"repositories": [
    {
        "type": "composer",
        "url": "http://packages.zendframework.com/"
    }
],

и отсюда вы можете добавлять пакеты отдельно:

"require": {
    "zendframework/zend-config": "2.0.*",
    "zendframework/zend-http": "2.0.*"
},

вам нужно только указать пакеты, которые вы хотите, если у них есть зависимости, они будут разрешены compser.

хотя это, кажется, не работает atm ...

person NDM    schedule 09.08.2012
comment
@nicky-de-maeyer Действительно. У меня есть репо в моем файле json, и я добавил только zend-db, но вся структура загружается. Это то, что вы имели в виду, когда сказали, что в данный момент это не работает? - person Luke Eller; 03.01.2013

Попробуйте проверить, есть ли в зависимостях некоторых пакетов расширения php. Я попытался установить пакеты zend-http и столкнулся с той же проблемой. Здесь я нашел предложение установить расширение php_intl, поскольку оно требуется для zend-validate - субзависимость пакета zend-http. Как только я добавил это расширение в php.ini - проблема была решена.

person Ololo    schedule 28.03.2013