> 개발 도구 > composer > 본문

Composer.lock 파일의 역할 소개

藏色散人
풀어 주다: 2019-12-16 11:37:05
앞으로
2988명이 탐색했습니다.

아래 composertutorial 칼럼에서는 작곡가.잠금 파일의 역할을 소개하겠습니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

Composer.lock 파일의 역할 소개

Composer 기본 사용법

프로젝트에서 Composer.json 사용하기

프로젝트에서 Composer를 사용하려면 주로 Composer.json 파일이 있어야 합니다. 패키지와 기타 요소 태그 간의 관계를 선언합니다.

require 키워드

composer.json에서 가장 먼저 require 키워드를 사용하는 것은 작곡가에게 프로젝트에 어떤 패키지가 필요한지 알려줍니다.

코드는 다음과 같습니다.

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}
로그인 후 복사

보시다시피 require입니다. 개체는 패키지 이름(monolog/monolog)을 매핑하고 패키지 버전은 1.0입니다.*

Package naming

기본적으로 패키지 이름은 기본 이름/프로젝트 이름(monolog/monolog)이며 기본 이름은 고유해야 합니다. 하지만 프로젝트 이름, 즉 패키지 이름은 동일할 수 있습니다. 예를 들어 igorw/json과 seldaek/json

패키지 버전

모노로그를 사용해야 하는 버전은 1.0입니다.* , 이는 버전이 1.0인 경우 1.0.0, 1.0.2 또는 1.0.99와 같은 분기를 의미합니다. 버전을 정의하는 두 가지 방법:

1. 표준 버전: 다음과 같은 보장된 버전 패키지 파일을 정의합니다. : 1.0.2

2 특정 버전 범위: 유효한 버전 범위를 정의하려면 비교 기호를 사용하세요. 유효한 기호는 >, >=, <,<=, !=

3입니다. : 특수 일치 기호 *, 예를 들어 1.0.*은 >=1.0,<1.1 버전이면 충분합니다

4. 다음으로 중요한 버전: ~ 기호에 대한 가장 좋은 설명은 ~1.2가 > 1.2,<2.0이지만 ~1.2.3은 >=1.2.3,<버전 1.3과 동일합니다.

패키지 설치

프로젝트 파일 경로에서 실행

코드는 다음과 같습니다.

$ composer install
로그인 후 복사

이렇게 하면 monolog/monolog 파일이 자동으로 공급업체 디렉토리에 다운로드됩니다.

다음으로 설명해야 할 것은

composer.lock - 잠금 파일

입니다. 필수 패키지를 모두 설치한 후 작곡가는 작곡가.잠금 파일에 표준 패키지 버전 파일을 생성합니다. 이렇게 하면 모든 패키지의 버전이 잠깁니다.

composer.lock을 사용하여(물론 작곡가.json과 함께) 프로젝트 버전을 제어하세요

이것은 설치 명령을 사용하여 처리할 때 먼저 작곡가.lock 파일이 존재하는지 확인하는 것입니다. 존재하는 경우 해당 버전이 다운로드됩니다(composer.json의 구성을 기반으로 하지 않음). 즉, 프로젝트를 다운로드하는 사람은 누구나 동일한 버전을 받게 됩니다.

composer.lock이 존재하지 않는 경우, 작곡가는 작곡가.json을 통해 필요한 패키지와 상대 버전을 읽은 다음, 작곡가.잠금 파일을 생성합니다.

이렇게 하면 패키지에 새 버전이 있는 후에는 자동으로 업데이트됩니다. 새 버전으로 업그레이드하려면 업데이트 명령을 사용하면 됩니다. 이렇게 하면 최신 버전의 패키지를 얻을 수 있고 작곡가.잠금 파일도 업데이트할 수 있습니다.

$ php composer.phar update
或者
$ composer update
로그인 후 복사

Packagist (이것은 작곡가여야 합니다. 비록 강력하지는 않지만 약간 Python 패키지와 같은 느낌입니다. 하하, 이 표준을 사용하면 앞으로 누구나 웹 사이트를 개발하는 것이 확실히 쉬울 것입니다. 다음에서 배울 수 있습니다. 많은 분들의 코드가 더욱 강력해집니다! )

Packagist는 Composer의 메인 웨어하우스입니다. Packagist의 목적은 누구나 사용할 수 있는 창고를 구축하는 것입니다. 이는 필요한 패키지를 파일에 넣는 것을 의미합니다.

자동 로딩에 대하여

Composer는 패키지 파일을 편리하게 로딩하기 위해 자동으로 Vendor/autoload.php 파일을 생성하는데, 필요할 때마다 편리하게 사용할 수 있습니다

require &#39;vendor/autoload.php&#39;;
로그인 후 복사

즉, 매우 사용하기 편리합니다 프로젝트에서 monlog를 사용해야 한다고 가정하면 직접 사용할 수 있으며 자동으로 로드됩니다!

코드는 다음과 같습니다.

$log = new Monolog\Logger(&#39;name&#39;);
$log->pushHandler(new Monolog\Handler\StreamHandler(&#39;app.log&#39;, Monolog\Logger::WARNING));
$log->addWarning(&#39;Foo&#39;);
로그인 후 복사

물론 작곡가.json에서 자신의 코드를 로드할 수도 있습니다.

코드는 다음과 같습니다.

{
    "autoload": {
        "psr-0": {"Acme": "src/"}
    }
}
로그인 후 복사

composer는 psr-0을 Acme 네임스페이스로 등록합니다

네임스페이스를 통해 파일 디렉터리에 대한 매핑을 정의할 수 있습니다. src 디렉터리는 루트 디렉터리이고 Vendor는 다음 디렉터리입니다. 예를 들어 파일: src/Acme/Foo.php에는 AcmeFoo 클래스가 포함되어 있습니다

자동 로드를 추가한 후에는 다시 설치하여 Vendor/autoload.php 파일을 생성해야 합니다

이 파일을 인용하면 반환됩니다. 오토로더 클래스의 장점을 활용하여 반환된 값을 변수에 넣은 다음 더 많은 네임스페이스를 추가할 수 있습니다. 이는 개발 환경에 있는 경우 매우 편리합니다. 예:

코드는 다음과 같습니다.

$loader = require &#39;vendor/autoload.php&#39;;
$loader->add('Acme\Test', __DIR__);
로그인 후 복사

composer.lock 파일의 역할

install 명령은 현재 디렉터리에서 작곡가.json 파일을 읽어 종속성을 처리한 후 공급업체 디렉터리에 설치합니다.

코드는 다음과 같습니다

composer install
로그인 후 복사

如果当前目录下存在 composer.lock 文件,它会从此文件读取依赖版本,而不是根据 composer.json 文件去获取依赖。这确保了该库的每个使用者都能得到相同的依赖版本。

如果没有 composer.lock 文件,composer 将在处理完依赖关系后创建它。

为了获取依赖的最新版本,并且升级 composer.lock 文件,你应该使用 update 命令。

代码如下:

composer update
로그인 후 복사

这将解决项目的所有依赖,并将确切的版本号写入 composer.lock。

如果你只是想更新几个包,你可以像这样分别列出它们:

代码如下:

composer update vendor/package vendor/package2
로그인 후 복사

你还可以使用通配符进行批量更新:

代码如下:

composer update vendor/*
로그인 후 복사

위 내용은 Composer.lock 파일의 역할 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:jb51.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿