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

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

Dec 31, 2019 pm 06:00 PM
composer php

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

CRAFT CMS의 캐싱 문제 해결 : Wiejeben/Craft-Laravel-Mix 플러그인 사용 CRAFT CMS의 캐싱 문제 해결 : Wiejeben/Craft-Laravel-Mix 플러그인 사용 Apr 18, 2025 am 09:24 AM

CRAFTCMS를 사용하여 웹 사이트를 개발할 때 특히 CSS 및 JavaScript 파일을 자주 업데이트 할 때 자주 리소스 파일 캐싱 문제가 발생하면 이전 버전의 파일이 여전히 브라우저에서 캐싱 될 수 있으므로 사용자는 최신 변경 사항을 볼 수 없습니다. 이 문제는 사용자 경험에 영향을 줄뿐만 아니라 개발 및 디버깅의 어려움을 증가시킵니다. 최근에 나는 프로젝트에서 비슷한 문제를 겪었고, 약간의 탐색 후 플러그인 Wiejeben/Craft-Laravel-Mix를 발견하여 캐싱 문제를 완벽하게 해결했습니다.

Laravel 프레임 워크 설치 방법 Laravel 프레임 워크 설치 방법 Apr 18, 2025 pm 12:54 PM

기사 요약 :이 기사는 Laravel 프레임 워크를 쉽게 설치하는 방법에 대한 독자들을 안내하기위한 자세한 단계별 지침을 제공합니다. Laravel은 웹 애플리케이션의 개발 프로세스를 가속화하는 강력한 PHP 프레임 워크입니다. 이 자습서는 시스템 요구 사항에서 데이터베이스 구성 및 라우팅 설정에 이르기까지 설치 프로세스를 다룹니다. 이러한 단계를 수행함으로써 독자들은 라벨 프로젝트를위한 탄탄한 토대를 빠르고 효율적으로 놓을 수 있습니다.

작곡가로 Laravelcms를 신속하게 구축하는 방법 : MKI-LABS/ESPRESSO 실제 경험 작곡가로 Laravelcms를 신속하게 구축하는 방법 : MKI-LABS/ESPRESSO 실제 경험 Apr 18, 2025 am 07:36 AM

새로운 Laravel 프로젝트를 개발할 때 까다로운 문제를 겪었습니다. 완전히 기능적이고 관리하기 쉬운 컨텐츠 관리 시스템 (CMS)을 신속하게 구축하는 방법. 여러 솔루션을 시도했지만 복잡한 구성과 불편한 유지 관리로 인해 모두 포기했습니다. 설치가 간단 할뿐만 아니라 강력한 기능과 직관적 인 관리 인터페이스를 제공하는 Laravelcms 패키지 MKI-Labs/Espresso를 발견 할 때까지 내 문제를 완전히 해결했습니다.

작곡가를 사용한 JavaScript 오류 처리 문제를 해결하는 방법 작곡가를 사용한 JavaScript 오류 처리 문제를 해결하는 방법 Apr 18, 2025 am 08:30 AM

복잡한 웹 응용 프로그램을 개발할 때 어려운 문제가 있습니다. JavaScript 오류를 효과적으로 처리하고 로그인하는 방법. 나는 몇 가지 방법을 시도했지만 도서관 dvasilenko/alterego_tools를 발견 할 때까지 아무도 내 요구를 충족시킬 수 없었습니다. 작곡가를 통해이 라이브러리를 설치 하여이 문제를 쉽게 해결하고 프로젝트의 유지 관리 및 안정성을 크게 향상 시켰습니다. 작곡가는 다음 주소를 통해 배울 수 있습니다. 학습 주소

의존성 주입을 해결하기 위해 작곡가 사용 : PSR-11 컨테이너 인터페이스의 적용 의존성 주입을 해결하기 위해 작곡가 사용 : PSR-11 컨테이너 인터페이스의 적용 Apr 18, 2025 am 07:39 AM

대규모 PHP 프로젝트를 개발할 때 일반적이지만 까다로운 문제를 겪었습니다. 의존성을 효과적으로 관리하고 주입하는 방법. 처음에는 글로벌 변수와 수동 주입을 사용하려고 시도했지만 코드의 복잡성을 증가시킬뿐만 아니라 오류가 쉽게 이어졌습니다. 마지막으로 PSR-11 컨테이너 인터페이스와 작곡가의 전력을 사용 하여이 문제를 성공적으로 해결했습니다.

작곡가를 사용하여 HTTP 요청 문제 : Yiche/HTTP 라이브러리에 대한 실용 가이드 작곡가를 사용하여 HTTP 요청 문제 : Yiche/HTTP 라이브러리에 대한 실용 가이드 Apr 18, 2025 am 08:06 AM

개발 중에 HTTP 요청이 종종 필요하며, 이는 데이터를 가져 오거나 데이터를 보내거나 외부 API와 상호 작용하는 것일 수 있습니다. 그러나 복잡한 네트워크 환경과 변경 요청 요구 사항에 직면 할 때 HTTP 요청을 효율적으로 처리하는 방법이 어려워집니다. 프로젝트에서 문제가 발생했습니다. 요청을 다른 API에 자주 보내야하고 후속 디버깅 및 분석을 용이하게하기 위해 요청을 기록해야합니다. 몇 가지 방법을 시도한 후 Yiche/HTTP 라이브러리를 발견했습니다. HTTP 요청의 처리를 단순화 할뿐만 아니라 동적 로깅 기능을 제공하여 개발 효율성을 크게 향상시킵니다.

작곡가를 사용하여 YII 프레임 워크에서 데이터의 배치 처리 문제를 해결하는 방법 작곡가를 사용하여 YII 프레임 워크에서 데이터의 배치 처리 문제를 해결하는 방법 Apr 18, 2025 am 07:54 AM

YII 프레임 워크 프로젝트를 개발할 때는 종종 데이터베이스에서 많은 양의 데이터를 얻어야하는 상황을 만나게됩니다. 적절한 조치를 취하지 않으면 모든 데이터를 직접 얻으면 메모리 오버플로가 발생하고 프로그램 성능에 영향을 줄 수 있습니다. 최근에 대규모 전자 상거래 플랫폼에 대한 프로젝트를 다룰 때이 문제가 발생했습니다. 약간의 연구 및 시험 후, 나는 Pavle/YII-Batch-Result의 확장 라이브러리를 통해 문제를 해결했습니다.

Silverstripe 웹 사이트의 접근성 향상 : 비행 초점 모듈의 설치 및 사용 Silverstripe 웹 사이트의 접근성 향상 : 비행 초점 모듈의 설치 및 사용 Apr 18, 2025 am 08:09 AM

정부 웹 사이트 프로젝트를 개발할 때 어려운 문제가 발생했습니다. 특히 시각 장애가있는 사용자의 요구를 충족시키기 위해 웹 사이트의 접근성을 향상시키는 방법, 특히 시각 장애가있는 사용자, 웹 사이트 탐색 및 운영은 매우 어려울 수 있습니다. 여러 가지 방법을 시도한 후, 나는 웹 사이트의 접근성을 크게 향상시키는 FlyingFocus라는 JavaScript 라이브러리를 발견했습니다. 그러나 그것을 Silverstripe 웹 사이트에 통합하는 것은 어려운 일입니다. 다행스럽게도 DIANZ/Silverstripe-Flying-Focus 모듈을 발견하여 FlyingFocus의 통합 프로세스를 단순화하고 퍼즐을 해결했습니다.

See all articles