Не удалось установить composer в проект Symfony 2.8
Как установить composer в проект symfony 2.8 с php 5.6?
вот мой composer.json
.
{
"name": "SIIG/eTAB",
"description": "SIIG/eTAB",
"autoload": {
"psr-0": { "": "src/" }
},
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.6.*",
"doctrine/orm": "v2.4.4",
"doctrine/doctrine-bundle": "v1.2.0",
"twig/extensions": "v1.0.1",
"symfony/assetic-bundle": "2.3.*@stable",
"kriswallsmith/assetic": "1.1.x@stable",
"symfony/swiftmailer-bundle": "v2.3.7",
"symfony/monolog-bundle": "v2.6.1",
"sensio/distribution-bundle": "v2.3.4",
"sensio/framework-extra-bundle": "v2.3.4",
"sensio/generator-bundle": "v2.3.5",
"incenteev/composer-parameter-handler": "v2.1.0",
"doctrine/data-fixtures": "v1.0.0",
"doctrine/doctrine-fixtures-bundle": "v2.2.0",
"knplabs/knp-menu-bundle":"dev-master",
"sonata-project/cache": "dev-master",
"sonata-project/cache-bundle": "dev-master",
"sonata-project/datagrid-bundle": "dev-master",
"sonata-project/core-bundle": "dev-master",
"sonata-project/admin-bundle": "dev-master",
"sonata-project/doctrine-orm-admin-bundle": "dev-master",
"sonata-project/block-bundle": "dev-master",
"sonata-project/easy-extends-bundle": "dev-master",
"sonata-project/user-bundle": "dev-master",
"simplethings/entity-audit-bundle": "v0.6",
"friendsofsymfony/user-bundle": "v1.3.3",
"friendsofsymfony/jsrouting-bundle": "v1.5.3"
2 answers
Composer может быть установлен следующим образом:
curl -s https://getcomposer.org/installer | php
Затем в корне вашего проекта:
composer install
Сама ошибка довольно ясна, вы пытаетесь установить версию 2.3.2 twig, которая требует наличия php7 или выше, но ваша версия php-5.6.30. на данный момент у вас есть два варианта:
- обновляет версию php до более новой. Php7, PHP7.1 и PHP7.2 представляют собой большой скачок производительности по сравнению с php5.6
- устанавливает версию twig, которая поддерживает php5. 6, последней является v1.35.0, добавление:
"twig/twig" : "^1.35"
Удаление файла из composer.lock
- Очень плохая идея. Как composer.json
, так и composer.lock
- это файлы, которые должны быть сохранены в вашем репозитории. Выполняя composer install, вы сохраняете точную фиксацию зависимостей вашего проекта. Если одна из этих библиотек вводит "backward compatibility break", вы можете оказаться в ситуации, когда вам нужно вернуть зависимости в предыдущее состояние, если у вас нет файла composer.lock может быть довольно сложно исправить это, особенно, если у вас нет большого опыта работы с composer.
С другой стороны, вы не должны поддерживать зависимости от dev-master
, если это не является полным и строго необходимым (временным). Библиотеки sonata имеют помеченные версии, вы можете найти их в packagist. Хорошей отправной точкой являются те, которые помечены 3, например:
"sonata-project/user-bundle" : "^3"
На этой неделе вышел symfony3. 4 и symfony4 поэтому они могут внести изменения в это ветка для исправления несовместимости с последней версией.