Composer가 다운로드한 콘텐츠를 git에 제출해야 하나요?
다음 composer 튜토리얼 칼럼에서는 Composer가 다운로드한 콘텐츠를 git에 제출해야 하는지에 대한 질문을 소개하겠습니다. 필요한 친구들에게 도움이 되길 바랍니다!
구체적인 질문:
Composer를 사용하는 모든 학생들에게 묻고 싶습니다. Composer를 통해 다운로드한 파일의 내용을 Git에 제출하시겠습니까?
공식 Faq에서 Should I Commit the dependency in myvendor라는 글을 봤는데 Git에 제출하지 말라고 하는 분들도 계셨는데, 브랜치를 전환할 때 Composer를 다시 설치하는 문제는 어떻게 해결해야 할까요? 공급업체가 저장소에 제출된 경우 패키지의 .git 폴더를 어떻게 처리해야 합니까?
*수정 작곡가 업데이트는 작곡가 설치여야 합니다
해결책:
사실 브랜치 개발이든 프로덕션 환경에 대한 배포이든, 작곡가.json에서 버전 번호에 대한 와일드카드 규칙을 어떻게 작성하든 상관없습니다. , 우리는 그것에 대해 가장 우려하고 있습니다. 가장 기본적인 내용은 항상 다음과 같습니다. 개발 중에 사용한 모든 종속 라이브러리의 구체적인 버전 번호는 무엇입니까?
그리고 이 콘텐츠는 작곡가.잠금 파일에서 지원됩니다. 잠금 파일을 유지함으로써 Composer 자체는 종속 라이브러리가 변경된 후 프로젝트에 있는 모든 종속 라이브러리의 특정 버전을 기록합니다. 이 파일에 대한 설명서를 읽어보십시오(https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file).
항상 작곡가.잠금 파일을 저장소에 제출해야 하며, 브랜치를 전환하거나 배포한 후에는 작곡가 설치를 사용하여 잠금 파일에 지정된 특정 종속성 버전을 설치해야 합니다.
이런 의미에서는 벤더 디렉토리를 메인 저장소에 제출하는 것이 맞습니다. 제출 여부는 절충적 선택입니다.
제출하는 경우:
장점: "당겨서 사용"하는 편리함.
단점: 정보가 중복됩니다. 당시 개발한 특정 버전으로 인해 잠금 파일이 기록되었습니다. 즉, Vendor 폴더도 같은 내용을 표현하고 있습니다.
단점: 불일치가 발생할 위험이 있습니다. Composer는 잠금 파일이 공급업체 디렉터리와 일치하는지 확인하지만 이를 git 저장소에 제출하는 것은 결국 수동 작업이기 때문입니다. 둘 중 하나에 뒤처지지 않는다는 보장은 없습니다.
제출하지 않으시면 장단점이 반전됩니다. 다시는 반복되지 않습니다.
내 생각은: "사용 편의성보다 정확성"이라는 생각을 고수하는 것이 좋습니다. 내 제안은 공급업체에 제출하는 것이 아니라 잠금 파일을 사용하여 개발 시 종속 라이브러리의 버전을 유지하는 것입니다.
제출하시는 경우, 반드시 다음 두 가지 지침을 따라주시기 바랍니다.
(1) 반드시 두 파일의 Vendor와 Composer.lock의 제출이 동기화되어 있는지 확인하세요. 하나가 언급되면 다른 하나도 언급되어야 합니다.
언제든지 커밋 중 하나만 제출하는 경우 모든 개발에 대해 책임을 져야 합니다.
그 이유는 다음과 같습니다. 가져온 후 즉시 사용할 수 있도록 공급업체에 제출하지만 git에는 부분 체크아웃 기능이 있습니다. Composer 프로젝트의 경우 Composer 프로젝트의 규칙을 따를 권리가 있지만 그렇지 않은 경우도 있습니다. 공급업체 디렉토리를 확인하세요. 하지만 실제 코드를 풀다운한 다음 작성기를 설치해 보세요. 제가 틀렸다고 말할 수는 없습니다.
(누군가 이것이 틀렸다고 하면 매 순간 SF와 Zhihu에 당신의 부도덕한 회사와 기술 이사를 폭로하도록 지원합니다)
(2) Vendor 폴더 제출에 대한 Composer의 제안을 꼭 따르십시오(https://getcomposer. org/doc/faqs/should-i-commit-the-dependents-in-my-vendor-directory.md), 하위 라이브러리의 모든 .git 디렉터리를 무시하고 공급업체에 실제 코드만 제출하세요.
믿어주세요. Vendor의 실제 코드와 Vendor/**/.git에 있는 git 라이브러리 자체의 관리 파일은 확실히 물 위 부분과 빙산의 수중 부분과 관련이 있습니다. 무시하지 않으면 사람이 죽는다고 해도 과언이 아니다.
브랜치 개발 시 저장소를 통해 Vendor 동기화를 하지 않고, Composer.lock만 동기화하더라도 시간 낭비가 발생하지 않는다는 점도 꼭 기억해두셔야 합니다.
두 브랜치 사이를 전환하는 것은 두 특정 버전 사이를 왔다 갔다 하는 것에 지나지 않습니다. Composer 자체는 다운로드된 모든 라이브러리를 캐시합니다. 각 분기를 가져온 후 작성기 설치는 다운로드 시간을 반복적으로 소비하지 않고 모든 캐시에 확실히 적중합니다.
위 내용은 Composer가 다운로드한 콘텐츠를 git에 제출해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

Laravelsocialite 패키지를 사용하여 Laravel 프레임 워크에 소셜 미디어 로그인을 통합 할 수 있습니다. 1. 사교계 패키지 설치 : ComposerRequirelaravel/Socialite 사용. 2. 서비스 제공 업체 및 별칭 구성 : config/app.php에서 관련 구성을 추가하십시오. 3. API 자격 증명 설정 : .env 및 config/services.php에서 소셜 미디어 API 자격 증명을 구성하십시오. 4. 쓰기 컨트롤러 방법 : 소셜 미디어 로그인 프로세스를 처리하기 위해 리디렉션 및 콜백 방법을 추가하십시오. 5. FAQ 처리 : 사용자 고유성, 데이터 동기화, 보안 및 오류 처리를 보장합니다. 6. 최적화 연습 :

Docker Containization 기술을 통해 PHP 개발자는 PHPStorm을 사용하여 개발 효율성과 환경 일관성을 향상시킬 수 있습니다. 특정 단계는 다음과 같습니다. 1. PHP 환경을 정의하기 위해 Dockerfile을 만듭니다. 2. phpstorm에서 Docker 연결을 구성합니다. 3. 서비스를 정의하기 위해 dockercompose 파일을 만듭니다. 4. 원격 PHP 통역사를 구성하십시오. 장점은 강력한 환경 일관성이며, 단점에는 긴 시작 시간과 복잡한 디버깅이 포함됩니다.

Laravel에서 패키지를 만드는 단계에는 다음이 포함됩니다. 1) 모듈성 및 재사용과 같은 패키지의 장점 이해; 2) 라벨 명명 및 구조적 사양에 따른다. 3) Artisan Command를 사용하여 서비스 제공 업체 작성; 4) 구성 파일을 올바르게 게시; 5) Packagist에 버전 제어 및 게시 관리; 6) 엄격한 테스트 수행; 7) 자세한 문서 작성; 8) 다른 라벨 버전과의 호환성 보장.

PHPStorm에서 작곡가를 구성하고 사용하는 단계는 다음과 같습니다. 1. PHPStorm이 최신 버전으로 업데이트되었는지 확인하십시오. 2. 작곡가를 설치하고 터미널에 "Composer-Version"을 사용하여 설치 상태를 확인하십시오. 3. PHPStorm에서 PHP 통역사 및 작곡가 경로를 설정하십시오. 4. Composer.json 파일을 마우스 오른쪽 버튼으로 클릭하고 "업데이트 된 의존성"을 선택하거나 터미널에서 Composer 명령을 사용하는 것과 같은 Composer 기능을 사용하십시오. 5. Composer.Lock 파일을 버전 컨트롤에 추가해야합니다. 6. "ComposerUpdatepack"사용

PHPStorm에서 YII 프레임 워크를 개발하는 것은 효율적이고 즐겁습니다. 1. phpstorm 및 yii 프레임 워크를 설치하고 작곡가를 사용하여 YII를 설치하십시오. 2. PHPStorm에서 YII 프로젝트를 열고 PHP 통역사 및 데이터베이스 연결을 구성하십시오. 3. Phpstorm의 코드 완료 및 디버깅 기능을 사용하여 개발을 위해 사용하십시오. 4. 버전 제어 및 내장 터미널을 사용하여 코드 변경을 관리하고 YII 명령을 실행하십시오. 5. 프로파일 러를 사용하여 성능을 최적화하십시오.

ComposerManagesDependenciesInphPprojectsBylettingyoudeClarequiredLibrarieswithversionconstraintSincomposer.json, whilecomposer.lockrecordsexactinstalledversions.1.composer.jsondefinesprojectmetataanddencecies withversionranges (e.g,,,,,,, monolog

Packagist는 PHP 패키지의 중앙 집중식 관리 및 발견을위한 Composer의 기본 패키지 저장소입니다. 코드 자체 대신 패키지의 메타 데이터를 저장하여 개발자가 Composer.json을 통해 종속성을 정의하고 설치 시간에 소스 (예 : Github)에서 코드를 가져올 수 있습니다. 핵심 기능에는 다음이 포함됩니다. 1. 중앙 집중식 패키지 브라우징 및 검색을 제공합니다. 2. 종속성 제약 조건을 충족시키기위한 버전 관리; 3. 자동 업데이트는 WebHooks를 통해 달성됩니다. 커스텀 리포지토리는 작곡가를 사용하도록 구성 할 수 있지만 Packagist는 공개 패키지의 배포 프로세스를 단순화합니다. 게시 패키지는 Packagist에 제출하고 웹 후크를 설정하여 다른 사람들이 ComposerRequire를 한 번 클릭하여 설치할 수 있도록 웹 후크를 설정해야합니다.

Composer.json의 자동로드 구성은 파일의 수동 포함을 피하고 PHP 클래스를 자동으로로드하는 데 사용됩니다. PSR-4 표준을 사용하여 네임 스페이스를 "app \"와 같은 디렉토리에 매핑합니다. ClastMap은 네임 스페이스가없는 레거시 코드에 적합한 클래스 맵을 생성하기 위해 특정 디렉토리를 스캔하는 데 사용됩니다. 파일은 매번 지정된 파일을로드하는 데 사용되며 함수 또는 상수 정의 파일에 적합합니다. 구성을 수정 한 후에는 ComposerDump-AutoLoad를 실행하여 프로덕션 환경에서 사용할 수있는 자동 로더를 생성해야합니다.
