Composer로 단일 라이브러리를 업데이트하는 방법은 무엇입니까? SF2 배포판 (DoctrineFixtures)에 하나의 패키지 만

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/*
  • –prefer-source : source가능한 경우 패키지를 설치합니다 .
  • –prefer-dist : dist사용 가능한 경우 패키지를 설치합니다 .
  • –ignore-플랫폼 REQS는 : 무시 php, hhvm, lib-*ext-*요구 사항 및 로컬 컴퓨터가이를 이행하지 않는 경우에도 설치를 강제로. platform config 옵션 도 참조하십시오 .
  • –dry-run : 실제로 아무 것도하지 않고 명령을 시뮬레이션합니다.
  • –dev :에 나열된 패키지를 설치합니다 require-dev(기본 동작).
  • –no-dev :에 나열된 패키지 설치를 건너 뜁니다 require-dev. 오토로더 생성은 autoload-dev규칙을 건너 뜁니다 .
  • –no-autoloader : 오토로더 생성을 건너 뜁니다.
  • –no-scripts : composer.json에 정의 된 스크립트 실행을 건너 뜁니다.
  • –no-plugins : 플러그인을 비활성화합니다.
  • –no-progress : 백 스페이스 문자를 처리하지 않는 일부 터미널 또는 스크립트를 망칠 수있는 진행률 표시를 제거합니다.
  • –optimize-autoloader (-o) : PSR-0 / 4 자동 로딩을 클래스 맵으로 변환하여 더 빠른 자동 로더를 얻습니다. 이것은 특히 프로덕션에 권장되지만 실행하는 데 약간의 시간이 걸릴 수 있으므로 현재 기본적으로 수행되지 않습니다.
  • –lock : 잠금 파일이 오래되었다는 경고를 표시하지 않도록 잠금 파일 해시 만 업데이트합니다.
  • –with-dependencies : 화이트리스트 패키지의 모든 종속성을 화이트리스트에 추가합니다.
  • –prefer-stable : 안정적인 버전의 종속성을 선호합니다.
  • –prefer-lowest : 가장 낮은 버전의 종속성을 선호합니다. 와 함께 사용되는 최소 버전의 요구 사항을 테스트하는 데 유용합니다 --prefer-stable.

답변

설치, 업데이트 및 요구 사항의 차이

다음 시나리오를 가정하십시오.

composer.json

"parsecsv/php-parsecsv": "0.*"

composer.lock 파일

  "name": "parsecsv/php-parsecsv",
            "version": "0.1.4",

최신 릴리스는 1.1.0입니다. 최신 0.*릴리스는0.3.2

설치: 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파일도 업데이트됩니다.


답변

기본적으로 다음 중 하나를 수행하여 새 패키지를 설치할 수 있습니다.

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 update vendor-name/module-name --with-dependencies

답변

composer.json에서 설정 한 버전 제약 조건 내에서 마지막 버전으로 이미 설치된 하나의 패키지를 composer가 업데이트하도록하려면 패키지를 공급 업체에서 제거하고 다음을 실행하십시오.

php composer.phar update vendor/package

답변

그냥 사용

composer require {package/packagename}

처럼

composer require phpmailer/phpmailer

패키지가 벤더 폴더에없는 경우.