Мне нужно установить только 1 пакет для моего дистрибутива SF2 (DoctrineFixtures).
Когда я бегу
php composer.phar update
я получил
- Updating twig/twig (dev-master 39d94fa => v1.13.0)
The package has modified files:
M CHANGELOG
M doc/filters/batch.test
M doc/filters/index.rst
M doc/filters/url_encode.rst
M doc/functions/index.rst
M doc/tags/index.rst
M doc/tests/index.rst
M lib/Twig/Autoloader.php
M lib/Twig/Compiler.php
M lib/Twig/CompilerInterface.php
-10 more files modified, choose "v" to view the full list
Похоже, последний разработчик отредактировал много файлов внутри вендора.
Чтобы обойти это, я попробовал
php composer.phar update <package_name>
Но это не работает. Как я могу обновить/установить только одну библиотеку из composer.json?
Для установки doctrine/doctrine-fixtures-bundle
с версией 2.1.*
и минимальной стабильностью @dev
используйте это:
composer.phar require doctrine/doctrine-fixtures-bundle:2.1.*@dev
затем обновить только этот пакет:
composer.phar update doctrine/doctrine-fixtures-bundle
Если вы просто хотите обновить несколько пакетов и не все, вы можете перечислить их как таковые:
php composer.phar update vendor/package:2.* vendor/package2:dev-master
Вы также можете использовать подстановочные знаки для одновременного обновления пакета пакетов:
php composer.phar update vendor/*
source
, если они доступны.dist
, если они доступны.php
, hhvm
, lib-*
и ext-*
требования и принудительно установить, даже если локальная машина не выполняет их. См. Также параметр platform
.require-dev
(это поведение по умолчанию).require-dev
. Генерация автозагрузчика пропускает правила autoload-dev
.--prefer-stable
.В основном вы можете выполнить следующий, чтобы установить новый пакет.
php composer.phar require
тогда терминал попросит вас ввести имя пакета для поиска.
$ Search for a package []: //Your package name here
Затем терминал запросит версию пакета (если вы хотите, чтобы последняя версия просто оставила его пустой)
$ Enter the version constraint to require (or leave blank to use the latest version) []: //your version number here
Затем вы просто нажимаете клавишу возврата. Терминал запросит другой пакет, если вы не хотите устанавливать другой, просто нажмите клавишу возврата, и вы будете готовы.
Чтобы гарантировать, что композитор обновит один пакет, уже установленный до последней версии, в ограничениях версии, которые вы установили в composer.json, удалите пакет из поставщика и затем выполните:
php composer.phar update vendor/package
Предположим, у вас есть в composer.json "parsecsv/php-parsecsv": "0.*",
и в вашем файле composer.lock
"name": "parsecsv/php-parsecsv",
"version": "0.1.4",
Последний выпуск 0.*
- 0.3.2
а последний - 1.1.0
.
Это то, что происходит со следующими командами:
composer install parsecsv/php-parsecsv
Это установит версию 0.1.4
как указано в файле блокировки
composer update parsecsv/php-parsecsv
Это обновит пакет до 0.3.2
. Самая высокая версия по отношению к вашему composer.json. Запись в composer.lock
будет обновлена.
composer require parsecsv/php-parsecsv
Это обновит или установит новейшую версию 1.1.0
. Ваш файл composer.lock
файл composer.json
также будут обновлены.
Поскольку вы хотели установить конкретный пакет "Мне нужно установить только 1 пакет для моего дистрибутива SF2 (DoctrineFixtures)".
php composer.phar require package/package-name:package-version
будет достаточно
Просто используйте
composer require {package/packagename}
лайк
composer require phpmailer/phpmailer
если пакет не находится в папке поставщика. Композитор устанавливает его и если пакет содержит пакет обновления композитора для последней версии.
composer.json
?