2013-05-21 2 views
3

Я не могу установить пакет stof/doctrine-extension с моим составителем. Я использую версию Symfony2.1.9. Многие проблемы показаны. Первый из них: запрошенный пакет stof/doctrine-extension-bundle 1.1. * не удалось найти. это мой composer.json файл:composer.json не может разрешить устанавливаемый набор пакетов

{ 
    "name": "symfony/framework-standard-edition", 
    "description": "The \"Symfony Standard Edition\" distribution", 
    "autoload": { 
     "psr-0": { "": "src/" } 
    }, 
    "require": { 
     "php": ">=5.3.3", 
     "symfony/symfony": "2.1.*", 
     "doctrine/orm": ">=2.2.3,<2.5-dev", 
     "doctrine/doctrine-bundle": "1.1.*", 
     "twig/extensions": "1.0.*@dev", 
     "symfony/assetic-bundle": "2.1.*", 
     "symfony/swiftmailer-bundle": "2.1.*", 
     "symfony/monolog-bundle": "2.1.*", 
     "sensio/distribution-bundle": "2.1.*", 
     "sensio/framework-extra-bundle": "2.1.*", 
     "sensio/generator-bundle": "2.1.*", 
     "jms/security-extra-bundle": "1.2.*", 
     "jms/di-extra-bundle": "1.1.*", 
     "kriswallsmith/assetic": "1.1.*@dev", 




     "pagerfanta/pagerfanta": "dev-master", 
     "white-october/pagerfanta-bundle": "dev-master", 
     "friendsofsymfony/user-bundle": "dev-master", 
     "saad-tazi/g-chart-bundle": "dev-master", 
     "stof/doctrine-extensions-bundle": "1.1.*", 
    }, 
    "scripts": { 
     "post-install-cmd": [ 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" 
     ], 
     "post-update-cmd": [ 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" 
     ] 
    }, 
    "extra": { 
     "symfony-app-dir": "app", 
     "symfony-web-dir": "web", 
     "branch-alias": { 
      "dev-master": "2.1-dev" 
     } 
    } 
} 

, когда я установил требование пакета для: "stof/doctrine-extensions-bundle": "1.1.*@dev" ответ был: your requirement could not be resolved to an installable set of package

что может быть проблема, пожалуйста ?? Должен ли я сначала установить DoctrineExtensions ???? сообщение

ошибка:

Problem 1 
    - Conclusion: don't install symfony/symfony v2.1.10 
    - Conclusion: remove symfony/symfony v2.1.9 
    - Conclusion: don't install symfony/symfony v2.1.9 
    - Conclusion: don't install symfony/symfony v2.1.8 
    - Conclusion: don't install symfony/symfony v2.1.7 
    - Conclusion: don't install symfony/symfony v2.1.6 
    - Conclusion: don't install symfony/symfony v2.1.5 
    - Conclusion: don't install symfony/symfony v2.1.4 
    - Conclusion: don't install symfony/symfony v2.1.3 
    - Conclusion: don't install symfony/symfony v2.1.2 
    - Conclusion: don't install symfony/symfony v2.1.1 
    - white-october/pagerfanta-bundle dev-master requires symfony/framework-bund 
le >=2.2,<3.0 -> satisfiable by symfony/symfony[v2.2.0, v2.2.1], symfony/framewo 
rk-bundle[v2.2.0, v2.2.1]. 
    - white-october/pagerfanta-bundle dev-master requires symfony/framework-bund 
le >=2.2,<3.0 -> satisfiable by symfony/symfony[v2.2.0, v2.2.1], symfony/framewo 
rk-bundle[v2.2.0, v2.2.1]. 
    - Can only install one of: symfony/symfony[v2.2.0, v2.1.0]. 
    - Can only install one of: symfony/symfony[v2.2.1, v2.1.0]. 
    - don't install symfony/framework-bundle v2.2.0|don't install symfony/symfon 
y v2.1.0 
    - don't install symfony/framework-bundle v2.2.1|don't install symfony/symfon 
y v2.1.0 
    - Installation request for symfony/symfony 2.1.* -> satisfiable by symfony/s 
ymfony[v2.1.0, v2.1.1, v2.1.10, v2.1.2, v2.1.3, v2.1.4, v2.1.5, v2.1.6, v2.1.7, 
v2.1.8, v2.1.9]. 
    - Installation request for white-october/pagerfanta-bundle dev-master -> sat 
isfiable by white-october/pagerfanta-bundle[dev-master]. 
+0

скопируйте полные сообщения об ошибках, а не только экстракт! –

ответ

8

Важной частью здесь является следующее:

[...] 
white-october/pagerfanta-bundle dev-master requires symfony/framework-bundle >=2.2,<3.0 -> satisfiable by symfony/symfony[v2.2.0, v2.2.1], symfony/framework-bundle[v2.2.0, v2.2.1]. 
[...] 

который может привести к путанице! Поясню:

Хотя он говорит, что зависимость выполнима обновив Symfony/Symfony для 2.2.0 или 2.2.1 ... это обновление НЕ ТРЕБУЕТСЯ !! (Даже если обновление может быть хорошей идеей, не нужно, чтобы решить эту проблему и может привести к разбитой кода из-за нашей эры [назад совместимость] брейки)

Внимание:

Многие пучки имеют legacy branch ... например a 2.1.x филиал для поддержки symfony/symfony 2.1.

Ищите эти ветки на packagist, прежде чем вслепую обновлять весь проект до новой версии корневого пакета!

Совет:

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

Решение:

smarttech использовал неправильную ветвь (DEV-мастер) для бело-октября/pagerfanta расслоения использовать его с Symfony 2,1. правильная ветвь для 2.1 была бы:

"white-october/pagerfanta-bundle": "2.1.*@dev" 

... где флаг Стабильности @dev говорит композитору использовать Dev версию доктрины-расширения расслоения в течение этого одного пакета. Подробнее о композиторе Stability Flags.

Возьмите быстрый взгляд на иерархию в стабильности:

dev < alpha < beta < rc < stable 

Альтернатива:

Другой способ решить этот вопрос был бы установка композитора minimum stability.

Хотя это не рекомендуется, поскольку это относится ко всем ограничениям, и в результате вы получите нестабильные версии всех пакетов.

{ 

    [...] 
    "require" : 

     [...] 

    "minimum-stability" : "dev", 

    [...] 

} 
+0

minimun-stability: dev очень плохой. Это приведет к тому, что все связки будут клонировать последнюю фиксацию. Это не помогает разрабатывать собственные приложения. –

+0

Не делай этого, потому что это плохая практика. –

+0

так жаль @ nifr.please, где писать эту строку. Извините, я так смущен – smarttech

0

Поскольку ветка 1.1.x stof/doctrine-extensions-bundle по-прежнему доступна только в качестве разработчика. Таким образом, вы должны объявить его как зависимость от разработчиков в композиторе. Просто:

"stof/doctrine-extensions-bundle": "1.1.*@dev" 

В следующий раз взгляните на упаковщик, какие версии доступны из желаемого пакета.

EDIT: И да, протестировал это требование в новой установке Symfony, и он работает. Поэтому, если у вас есть ошибки, отредактируйте полное сообщение об ошибке в своем вопросе!

0

Поскольку это совершенно другой ответ. Ваша проблема не в stof/doctrine-extensions-bundle, это white-october/pagerfanta-bundle. Дети, прочитайте сообщения об ошибках!

Как я знал это? Просто скопировал свой composer.json, оформленное обновление и получил сообщение об ошибке означает:

white-october/pagerfanta-bundle dev-master requires symfony/framework-bundle >=2.2,<3.0 -> satisfiable by symfony/symfony[v2.2.0, v2.2.1], symfony/framework-bundle[v2.2.0, v2.2.1]. 

, что означает, фактические версии из pagerfanta-расслоения требует Symfony 2. , поэтому вам придется обновить, если вы хотите использовать его.

+0

thnx so much @Pazi, теперь все идет хорошо – smarttech

+0

@smarttech Пази указала вам на НЕПРАВИЛЬНОЕ решение. Хотя это сработало для вас сейчас ... обновление symfony до 2.2 не было необходимо! В большом проекте это привело бы ко всем видам перерывов в BC в вашем коде. Мой ответ теперь содержит всю информацию. Пожалуйста, примите его, поскольку он правильный. – nifr

+0

спасибо :-) хотя намек на «фактические версии pagerfanta-bundle требует symfony 2.2» сам по себе не ошибается ... правильным решением было бы просто использовать правильную ветку legacy. – nifr