2016-11-14 3 views
0

Я хотел бы установить пакет phpdocumentor/reflexion в моем проекте SF2. Так я запускаю следующую команду composer require "phpdocumentor/reflection", но у меня есть следующее сообщение об ошибке стека:Установка phpdocumentor/reflection с композитором

Your requirements could not be resolved to an installable set of packages. 

Problem 1 

- Conclusion: don't install phpdocumentor/reflection 3.0.1 
- Conclusion: remove phpdocumentor/reflection-docblock 3.1.1 
- Installation request for phpdocumentor/reflection ^3.0 -> satisfiable by phpdocumentor/reflection[3.0.0, 3.0.1].                        │ Feature/T4136-18-identification-by-vin 
- Conclusion: don't install phpdocumentor/reflection-docblock 3.1.1 
- phpdocumentor/reflection 3.0.0 requires phpdocumentor/reflection-docblock ~2.0 -> satisfiable by phpdocumentor/reflection-docblock[2.0.0, 2.0.0a1, 2.0.0a2, 2.0.0a3, 2.0.1, 2.0.2, 2.0.3, 2.0.4].    │ master 
- Can only install one of: phpdocumentor/reflection-docblock[2.0.0, 3.1.1]. 
- Can only install one of: phpdocumentor/reflection-docblock[2.0.0a1, 3.1.1]. 
- Can only install one of: phpdocumentor/reflection-docblock[2.0.0a2, 3.1.1]. 
- Can only install one of: phpdocumentor/reflection-docblock[2.0.0a3, 3.1.1]. 
- Can only install one of: phpdocumentor/reflection-docblock[2.0.1, 3.1.1]. 
- Can only install one of: phpdocumentor/reflection-docblock[2.0.2, 3.1.1]. 
- Can only install one of: phpdocumentor/reflection-docblock[2.0.3, 3.1.1]. 
- Can only install one of: phpdocumentor/reflection-docblock[2.0.4, 3.1.1]. 
- Installation request for phpdocumentor/reflection-docblock (locked at 3.1.1) -> satisfiable by phpdocumentor/reflection-docblock[3.1.1]. 

Вот мой composer.json:

{ 
"name": "symfony/framework-standard-edition", 
"license": "MIT", 
"type": "project", 
"description": "The \"Symfony Standard Edition\" distribution", 
"autoload": { 
    "classmap": [ "app/AppKernel.php", "app/AppCache.php" ] 
}, 
"require": { 
    "php": ">=5.3.9", 
    "symfony/symfony": "2.8.*", 
    "symfony/serializer": "~3.1.5", 
    "doctrine/orm": "^2.4.8", 
    "doctrine/doctrine-bundle": "~1.4", 
    "symfony/swiftmailer-bundle": "~2.3", 
    "symfony/monolog-bundle": "~2.4", 
    "sensio/distribution-bundle": "~5.0", 
    "sensio/framework-extra-bundle": "^3.0.2", 
    "incenteev/composer-parameter-handler": "~2.0" 
}, 
"require-dev": { 
    "sensio/generator-bundle": "~3.0", 
    "symfony/phpunit-bridge": "~2.7", 
    "phpunit/phpunit": "5.5.*" 
}, 
"scripts": { 
    "symfony-scripts": [ 
     "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget" 
    ], 
    "post-install-cmd": [ 
     "@symfony-scripts" 
    ], 
    "post-update-cmd": [ 
     "@symfony-scripts" 
    ] 
}, 
"config": { 
    "bin-dir": "bin", 
    "platform": { 
     "php": "5.6" 
    } 
}, 
"extra": { 
    "symfony-app-dir": "app", 
    "symfony-web-dir": "web", 
    "symfony-assets-install": "relative", 
    "incenteev-parameters": { 
     "file": "app/config/parameters.yml" 
    }, 
    "branch-alias": { 
     "dev-master": "2.8-dev" 
    } 
} 

}

Я не знаю точно, где проблема но я думаю, что композитор пытается установить последнюю стабильную версию phpdocumentor/reflection (3.0.1). Этот пакет имеет зависимость от phpdocumentor/reflection-docblock (~ 2.0), но он должен быть 3.1.1.

Любые идеи, как решить эту проблему?

+1

мы можем увидеть файл composer.json? – Federkun

+0

Да, я отредактировал свой ответ. –

ответ

3

Если вы хотите установить пакет phpdocumentor/reflection ~3.0, вам необходимо указать phpdocumentor/reflection-docblock ~2.0. Проблема в том, что вы уже установили phpdocumentor/reflection-docblock ~3.1, потому что phpspec/prophecy 1.6.1 требует: phpdocumentor/reflection-docblock (^2.0|^3.0.2).

Хорошей новостью является то, что phpspec/prophecy может работать нормально с версией 0 2., поэтому вы можете сначала перенести этот пакет.

composer require phpdocumentor/reflection-docblock:~2.0 

Затем вы можете потребовать phpdocumentor/reflection без конфликтов:

composer require phpdocumentor/reflection 
+0

Да, это решило мою проблему. –

1

Похоже, что у вас есть PhpDocumentor/отражение-заголовочный блок 3.1.1 уже в установке и этот пакет требует PhpDocumentor/отражения-заголовочный блок 3.0. *

Удалить PhpDocumentor/отражательного DocBlock 3.1.1 и попытаться установить phpdocumentor/reflexion again

Смежные вопросы