Heim  >  Artikel  >  Entwicklungswerkzeuge  >  Was macht die Datei „composer.lock“?

Was macht die Datei „composer.lock“?

藏色散人
藏色散人nach vorne
2019-11-23 11:24:014423Durchsuche

Die folgende Tutorial-Kolumne von Composer mit stellt Ihnen die Funktion der Composer.lock-Datei vor. Ich hoffe, dass sie Freunden in Not hilfreich sein wird!

Was macht die Datei „composer.lock“?

Grundlegende Verwendung von Composer

Composer.json im Projekt verwenden

Composer im Projekt verwenden, Sie benötigen eine Composer.json-Datei. Diese Datei wird hauptsächlich zum Deklarieren der Beziehungen zwischen Paketen und anderen Element-Tags verwendet.

Require-Schlüsselwort

Das erste, was Sie in Composer.json tun müssen, ist die Verwendung des Require-Schlüsselworts. Sie teilen Composer mit, welche Pakete Ihr Projekt benötigt

Der Code lautet wie folgt:

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

Wie Sie sehen können, ordnet das Anforderungsobjekt den Namen des Pakets (monolog/monolog) zu und die Version des Pakets ist 1.0.*

Die Benennung des Pakets

Grundsätzlich ist der Name des Pakets der Hauptname/Projektname (Monolog/Monolog). Der Hauptname muss eindeutig sein, aber der Name des Projekts, das unser Paket ist, kann denselben Namen haben, zum Beispiel: igorw/json und seldaek /json

Paketversion

Die Version von Monolog, die wir verwenden müssen, ist 1.0.*, was bedeutet, dass solange die Version ist der 1.0-Zweig, z. B. 1.0.0, 1.0.2 oder 1.0 .99

Zwei Möglichkeiten der Versionsdefinition:

1. Definieren Sie eine garantierte Versionspaketdatei. wie zum Beispiel: 1.0.2

2. Eine bestimmte Bereichsversion: Verwenden Sie Vergleichssymbole, um den Bereich gültiger Versionen zu definieren: >, >=, 217e29fe5850979f6f13f5453e018c38=1.0,ed8ff36f50b5d9f76dbc84268ca703001.2,ae658aec3a018bb7affd2d9bebfb709c=1.2.3,

Installationspaket

Führen Sie es im Projektdateipfad aus

Der Code lautet wie folgt:

$ composer install

Auf diese Weise Es lädt automatisch die Monolog-/Monolog-Datei in Ihr Anbieterverzeichnis herunter.

Das nächste, was erklärt werden muss, ist

composer.lock – Datei sperren

Nach der Installation aller erforderlichen Pakete generiert Composer eine Standardpaketversion. Die Dateien sind in die Datei „composer.lock“. Dadurch werden Versionen aller Pakete gesperrt.

Verwenden Sie Composer.lock (natürlich zusammen mit Composer.json), um die Version Ihres Projekts zu steuern.

Dies ist sehr wichtig, wenn wir es mit dem Installationsbefehl verarbeiten Stellen Sie fest, ob die Datei „composer.lock“ vorhanden ist. Wenn sie vorhanden ist, wird die entsprechende Version heruntergeladen (nicht basierend auf der Konfiguration in „composer.json“), was bedeutet, dass jeder, der das Projekt herunterlädt, dieselbe Version erhält.

Wenn Composer.lock nicht vorhanden ist, liest Composer das erforderliche Paket und die entsprechende Version über Composer.json und erstellt dann die Composer.lock-Datei

Auf diese Weise kann es in Ihrem verwendet werden Nachdem das Paket eine neue Version hat, werden Sie nicht automatisch aktualisiert. Um auf die neue Version zu aktualisieren, verwenden Sie einfach den Update-Befehl. Auf diese Weise können Sie die neueste Version des Pakets erhalten und auch Ihre Composer.lock-Datei aktualisieren.

$ php composer.phar update
或者
$ composer update

Packagist (das sollte Composer heißen, es fühlt sich ein bisschen wie ein Python-Paket an, wenn auch nicht so leistungsstark, haha, mit diesem Standard wird es in Zukunft definitiv für jeden einfach sein, Websites zu entwickeln, und für Sie kann aus den Codes vieler Leute lernen, und es ist bequemer!)

Packagist ist das Hauptlager von Composer. Sie können es sich ansehen. Die Basis des Composer Warehouse ist der Quellcode des Pakets Packagist ist als Tool konzipiert, das von jedem verwendet werden kann. Ein Repository kann verwendet werden, d. h. jedes erforderliche Paket in Ihrer Datei.

Über das automatische Laden

Um Paketdateien bequem zu laden, generiert Composer automatisch eine Datei seller/autoload.php. Sie können sie bequem überall verwenden Sie müssen es verwenden

require 'vendor/autoload.php';

Das bedeutet, dass Sie Code von Drittanbietern sehr bequem verwenden können. Wenn Ihr Projekt Monlog verwenden muss, können Sie es direkt verwenden, sie wurden automatisch geladen!

Der Code lautet wie folgt:

$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');

Natürlich können Sie auch Ihren eigenen Code in Composer.json laden:

Der Code lautet wie folgt:

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

composer will put psr-0 Registriert als Acme-Namespace

Sie können eine Zuordnung zum Dateiverzeichnis über den Namespace definieren. Das src-Verzeichnis ist Ihr Stammverzeichnis und der Anbieter ist das Verzeichnis auf derselben Ebene. src/Acme/Foo. PHP enthält die AcmeFoo-Klasse

Nachdem Sie Autoload hinzugefügt haben, müssen Sie eine Neuinstallation durchführen, um die Datei „vendor/autoload.php“ zu generieren

Wenn wir auf diese Datei verweisen, a Die Stärke von die Autoloader-Klasse, sodass Sie den zurückgegebenen Wert in eine Variable einfügen und dann weitere Namespaces hinzufügen können. Dies ist beispielsweise sehr praktisch, wenn Sie sich in einer Entwicklungsumgebung befinden:

Der Code lautet wie folgt:

$loader = require 'vendor/autoload.php';
$loader->add('Acme\Test', __DIR__);

Die Rolle der Datei „composer.lock“

Der Installationsbefehl liest die Datei „composer.json“ aus dem aktuellen Verzeichnis, verarbeitet die Abhängigkeiten und installiert sie im Herstellerverzeichnis.

Der Code lautet wie folgt:

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/*

Das obige ist der detaillierte Inhalt vonWas macht die Datei „composer.lock“?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen