>  기사  >  개발 도구  >  PHP 개발자가 알아야 할 5가지 Composer 팁

PHP 개발자가 알아야 할 5가지 Composer 팁

青灯夜游
青灯夜游앞으로
2019-12-31 18:00:133067검색

Composer 는 차세대 PHP 종속성 관리 도구입니다. 이 기사에서는 PHP 개발의 편의성을 높이기 위해 Composer 사용에 대한 5가지 팁을 소개합니다.

PHP 개발자가 알아야 할 5가지 Composer 팁

1. 단일 라이브러리만 업데이트

특정 라이브러리만 업데이트하고 해당 라이브러리의 모든 종속성을 업데이트하고 싶지 않은 경우 매우 간단합니다

composer update foo/bar

또한 이 트릭을 사용할 수도 있습니다. "경고 메시지 문제"를 해결합니다. 다음과 같은 경고 메시지를 본 적이 있을 것입니다.

Warning: The lock file is not up to date with the latest changes in composer.json, you may be getting outdated dependencies, run update to update them.

ru, 무엇이 잘못되었나요? 당황하지 말 것! 작곡가.json을 편집하면 다음과 같은 내용이 표시됩니다. 예를 들어, 라이브러리 설명, 작성자, 추가 매개변수 또는 공백과 같은 세부사항을 추가하거나 업데이트하면 파일의 md5sum이 변경됩니다. 그러면 Composer는 해시 값이 작곡가.lock에 기록된 값과 다르다는 경고를 표시합니다.

그럼 우리는 어떻게 해야 할까요? update 명령은 잠금 파일을 업데이트할 수 있지만 일부 설명만 추가하는 경우 라이브러리를 업데이트해서는 안 됩니다. 이 경우 아무것도 업데이트하지 마세요.

$ composer update nothing

Loading composer repositories with package information

Updating dependencies

Nothing to install or update

Writing lock file

Generating autoload files

이렇게 하면 Composer는 라이브러리를 업데이트하지 않지만 작곡가.잠금은 업데이트합니다. update 명령의 키워드는 아무것도 아닙니다. 이 패키지로 인해 발생하는 것은 없습니다. foobar를 입력해도 결과는 동일합니다.

사용 중인 Composer 버전이 충분히 새로운 경우 --lock 옵션을 직접 사용할 수 있습니다:

composer update --lock

2.composer.json을 편집하지 않고 라이브러리 설치

각 라이브러리를 설치해야 한다고 느낄 수도 있습니다. Composer.json은 너무 번거롭기 때문에 require 명령어를 직접 사용해도 됩니다.

composer require "foo/bar:1.0.0"

이 방법을 사용하면 새 프로젝트를 빠르게 열 수도 있습니다. init 명령에는 자동으로 작곡가.json을 작성할 수 있는 --require 옵션이 있습니다. (질문에 답할 필요가 없도록 -n을 사용합니다.)

$ composer init --require=foo/bar:1.0.0 -n
$ cat composer.json
{
    "require": {

        "foo/bar": "1.0.0"
    }
}

3 파생하는 것은 쉽습니다

. 초기화, create-project 주문을 시도하셨나요?

composer create-project doctrine/orm path 2.2.0

이렇게 하면 저장소가 자동으로 복제되고 지정된 버전이 체크아웃됩니다. 이 명령은 원본 URI를 검색할 필요가 없으므로 라이브러리를 복제할 때 사용하기 매우 편리합니다.

4. 캐싱 고려, dist 패키지 우선순위

작년의 Composer는 다운로드한 dist 패키지를 자동으로 보관합니다. 기본적으로 dist 패키지는 "symfony/symfony": "v2.1.4", 와일드카드나 버전 범위, "2.1.*" 또는 ">=2.2,<2.3-dev"와 같은 태그가 지정된 버전에 사용됩니다. (최소 안정성으로 stable을 사용하는 경우)

dist 패키지는 dev-master와 같은 브랜치에도 사용할 수 있으며 Github에서는 특정 git 참조의 압축 패키지를 다운로드할 수 있습니다. 소스 코드를 복제하는 대신 tarball을 강제로 사용하려면 설치 및 업데이트의 --prefer-dist 옵션을 사용할 수 있습니다.

다음은 예입니다(실행 시간을 표시하기 위해 --profile 옵션을 사용했습니다):

$ composer init --require="twig/twig:1.*" -n --profile

Memory usage: 3.94MB (peak: 4.08MB), time: 0s

  

$ composer install --profile

Loading composer repositories with package information

Installing dependencies

  - Installing twig/twig (v1.12.2)

    Downloading: 100%

  

Writing lock file

Generating autoload files

Memory usage: 10.13MB (peak: 12.65MB), time: 4.71s

  

$ rm -rf vendor

  

$ composer install --profile

Loading composer repositories with package information

Installing dependencies from lock file

  - Installing twig/twig (v1.12.2)

    Loading from cache

  

Generating autoload files

Memory usage: 4.96MB (peak: 5.57MB), time: 0.45s

여기서 twig/twig:1.12.2의 압축 패키지는 ~/.composer/cache/files/twig에 저장됩니다. /나뭇가지 /1.12.2.0-v1.12.2.zip. 패키지를 다시 설치할 때 직접 사용하십시오.

5. 수정을 원할 경우 소스코드가 우선되어야 합니다

라이브러리 수정이 필요한 경우에는 패키지를 다운로드하는 것보다 소스코드를 복제하는 것이 더 편리합니다. --prefer-source를 사용하여 복제 소스 코드를 강제로 선택할 수 있습니다.

composer update symfony/yaml --prefer-source

다음으로 파일을 수정할 수 있습니다.

composer status -v

You have changes in the following dependencies:

/path/to/app/vendor/symfony/yaml/Symfony/Component/Yaml:

    M Dumper.php

수정된 라이브러리를 업데이트하려고 하면 Composer가 알림을 표시하고 수정 사항을 포기할지 묻습니다.

$ composer update

Loading composer repositories with package information

Updating dependencies

  - Updating symfony/symfony v2.2.0 (v2.2.0- => v2.2.0)

    The package has modified files:

    M Dumper.php

    Discard changes [y,n,v,s,?]?</p>
<p>프로덕션 환경을 준비하세요</p>
<p>마지막으로, 프로덕션 환경에 코드를 배포할 때 자동 로딩을 최적화하는 것을 잊지 마세요: </p>
<pre class="brush:php;toolbar:false">composer dump-autoload --optimize

패키지를 설치할 때 --optimize-autoloader를 사용할 수도 있습니다. 이 옵션이 없으면 성능이 20%~25% 손실될 수 있습니다.

더 많은 작곡가 관련 기술 기사를 보려면 composer 칼럼을 방문하세요! !

위 내용은 PHP 개발자가 알아야 할 5가지 Composer 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제