>개발 도구 >composer >Composer.lock 파일의 기능은 무엇입니까?

Composer.lock 파일의 기능은 무엇입니까?

藏色散人
藏色散人앞으로
2019-11-23 11:24:014547검색

다음은 작곡가.lock 파일의 역할을 소개하기 위해 composer가 을 사용하여 작성한 튜토리얼 칼럼입니다. 친구들에게 도움이 되길 바랍니다. 도움이 필요해요!

Composer.lock 파일의 기능은 무엇입니까?

Composer 기본 사용

프로젝트에서 Composer.json 사용#🎜🎜 #

프로젝트에서 작곡가를 사용하려면 작곡가.json 파일이 있어야 합니다. 이 파일은 주로 패키지와 다른 요소 태그 간의 상호 관계를 선언하는 데 사용됩니다.

require 키워드

Composer.json에서 가장 먼저 해야 할 일은 require 키워드를 사용하는 것입니다. . 프로젝트에 필요한

코드는 다음과 같습니다:

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

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

Package naming

기본적으로 패키지 이름은 메인 이름/프로젝트 이름(monolog/monolog)이어야 합니다. , 그러나 프로젝트는 우리의 패키지이기도 합니다. 예를 들어 igorw/json 및 seldaek/json

Package version

The version of monolog we 사용해야 하는 버전은 1.0.*입니다. 이는 버전이 1.0.0, 1.0.2 또는 1.0.99와 같은 1.0 분기인 한

버전 정의의 두 가지 방법: #🎜🎜 #

1. 표준 버전: 정의 보장된 버전 패키지 파일(예: 1.0.2

2) 특정 버전 범위: 유효한 버전의 범위를 정의하려면. 기호에는 >, d27328c6b0fba4ba8026f0b88cc877671.2,<2.0과 동일하지만 ~1.2.3은 동일하다는 것입니다. >=1.2.3,

설치 패키지

프로젝트 파일 경로

코드는 다음과 같습니다.

$ composer install
#🎜 🎜#이렇게 하면 모노로그/모노로그 파일이 공급업체 디렉토리에 자동으로 다운로드됩니다.

다음으로 설명해야 할 것은

composer.lock - 잠금 파일

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

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

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

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

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

$ php composer.phar update
或者
$ composer update

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

Packagist는 Composer의 메인웨어하우스에서 확인하실 수 있습니다. package. 마음대로 얻을 수 있습니다. Packagist의 목적은 누구나 사용할 수 있는 저장소, 즉 파일에 필요한 패키지를 의미합니다.

자동 로딩에 대하여

Composer는 패키지 파일을 편리하게 로드하기 위해 자동으로 Vendor/autoload.php 파일을 생성합니다. 필요할 때마다 사용하세요

require &#39;vendor/autoload.php&#39;;

이는 제3자 코드를 아주 아주 편리하게 사용할 수 있다는 뜻입니다. 프로젝트에서 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;);

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

코드는 다음과 같습니다. 다음과 같이:

{
    "autoload": {
        "psr-0": {"Acme": "src/"}
    }
}

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

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

가 포함되어 있습니다. 자동 로드를 추가한 후에는 Vendor/autoload를 생성하려면 다시 설치해야 합니다. file

이 파일을 참조하면 오토로더 클래스의 강도를 반환하므로 반환된 값을 변수에 넣은 다음 더 많은 네임스페이스를 추가할 수 있습니다. 이는 개발 환경에서 매우 편리합니다. , 예:

코드는 다음과 같습니다:

$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으로 문의하시기 바랍니다. 삭제