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
.
Любая идея, почему?
Ответы
Ответ 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, проблема была решена.