Подтвердить что ты не робот

Zend Framework Composer Packages

Я хотел бы добавить зависимость к пакету 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.

Любая идея, почему?

4b9b3361

Ответ 1

Здесь composer.json из zend-db в zend github. Согласно файлу, zend-db не имеет никаких зависимостей.

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

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


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

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

  • Контроллер
  • Config
  • Фильтр
  • Json
  • Loader (для автозагрузки я считаю, что это может быть необязательно из-за автозагрузчика композитора)
  • Uri
  • Вид
  • Wildfire

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

Ответ 2

как описано здесь 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.*"
},

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

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

Ответ 3

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