Разрешение конфликтов зависимостей Установка Behat и Laravel 5.3
Здравствуйте, я пытаюсь установить behat / behat через composer, однако у меня есть проблемы с зависимостями. Я попробовал следующее из многих:
composer require behat/behat:"3.*" symfony/dependency-injection:"3.*" --dev
Тем не менее, выход выше
Your requirements could not be resolved to an installable set of packages.
Ниже находится мой файл composer.json.
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.3.*",
"dingo/api": "1.0.*@dev",
"tymon/jwt-auth": "0.5.11",
"phaza/laravel-postgis": "^3.0",
"jenssegers/raven": "1.9.0",
"guzzlehttp/guzzle": "~5.3|~6.0",
"oureastudios/laravel5-braintree": "dev-master",
"vinkla/algolia": "^2.1",
"alexpechkarev/google-maps": "1.0.5",
"pda/pheanstalk": "~3.0",
"league/flysystem-aws-s3-v3": "~1.0",
"pubnub/pubnub": "3.7.*",
"maknz/slack": "^1.7",
"intervention/image": "^2.3",
"wilgucki/csv": "^0.5.1",
"doctrine/dbal": "^2.5",
"davibennun/laravel-push-notification": "@dev",
"aloha/twilio": "^2.1",
"laravel/socialite": "^2.0",
"barryvdh/laravel-dompdf": "^0.8.0",
"mockery/mockery": "1.0",
"maxmind-db/reader": "~1.0",
"predis/predis": "^1.1"
},
"require-dev": {
"symfony/dom-crawler": "~3.1",
"symfony/css-selector": "~3.1",
"fzaninotto/faker": "~1.4",
"phpunit/phpunit": "~5.0",
"phpspec/phpspec": "~2.1",
"johnkary/phpunit-speedtrap": "^1.0",
"barryvdh/laravel-ide-helper": "^2.4"
},
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php",
"tests/Helpers/",
"tests/Traits/"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"pre-update-cmd": [
"php artisan clear-compiled",
"php artisan ide-helper:generate",
"php artisan ide-helper:models -N",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan optimize"
],
"post-root-package-install": [
"php -r \"copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
}
}
Какую комбинацию Beat и Symfony/ зависимостей-инъекции я должен установить? Я пробовал много версий, когда-либо выдавал приведенную ниже команду composer info behat / behat -a, но все равно безрезультатно.
1 ответ
По сути, всякий раз, когда вы попадаете в этот кошмар зависимостей, вам настоятельно рекомендуется указывать требуемые версии, а не подстановочные знаки. Другими словами: дайте Композитору меньше места для воображения.
Вот что я сделал, чтобы это работало:
1. Угадай, что лучше всего подходит
Laravel 5.3 был выпущен еще 9 сентября 2016 года. В нем упоминались релизы Behat, первым основным выпуском до этого был 3.1.0, выпущенный 28 марта 2016 года. Так что это первая версия, которую я поместил в Composer напрямую (т.е. без любые подстановочные знаки и тому подобное) вроде так:
"behat/behat": "3.1.0",
2. Запустите материал без каких-либо условий
После этого я просто запустил следующее:
composer dump-autoload
: очистить кешrm -rf vendor
а такжеrm composer.lock
: просто, чтобы облегчить жизньcomposer install --no-scripts
: просто чтобы убедиться, чтоphp artisan
вещи не работают- прибыль
composer show | grep behat behat/behat v3.1.0 Scenario-oriented BDD framework for PHP 5.3 behat/gherkin v4.5.1 Gherkin DSL parser for PHP 5.3 behat/transliterator v1.2.0 String transliterator