Heim > Artikel > Entwicklungswerkzeuge > Einführung in die Rolle der Datei „composer.lock“.
Die folgende Spalte des ComposerTutorials stellt Ihnen die Funktion der Composer.lock-Datei vor. Ich hoffe, dass sie Freunden in Not hilfreich sein wird!
Grundlegende Verwendung von Composer
wird im verwendet Projekt Composer.json
Um Composer in Ihrem Projekt zu verwenden, benötigen Sie 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. Standardversion: Definieren eine garantierte Versionspaketdatei, wie zum Beispiel: 1.0.2
2. Ein bestimmter Versionsbereich: Verwenden Sie Vergleichssymbole, um den Bereich gültiger Versionen zu definieren. 0dc16616be13f1324b6fbe8d1c92ba99=1.0, ae4d42806edd6484c731f1580735618b1.2,cfe750eff03b56de1fd72727d0db8f1d=1.2.3,<1.3 Version.
Installieren Sie das Paket
Führen Sie es im Projektdateipfad aus
Der Code lautet wie folgt:
$ composer install
Auf diese Weise wird das automatisch heruntergeladen monolog/monolog-Datei an Ihren Anbieter unterhalb des Verzeichnisses.
Das nächste, was erklärt werden muss, ist
composer.lock – Datei sperren
Nach der Installation aller erforderlichen Pakete generiert Composer einen Standard A Die Paketversionsdatei befindet sich in der 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 Vendor/autoload.php, die Sie bequem überall dort verwenden können, wo Sie sie benötigen
require 'vendor/autoload.php';
Das bedeutet, dass Sie Code von Drittanbietern sehr bequem verwenden können. Angenommen, Ihr Projekt muss Monlog verwenden, Sie können 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 registriert psr-0 als Acme-Namespace
Sie können eine Zuordnung zum Dateiverzeichnis über den Namespace definieren. Das Verzeichnis src ist Ihr Stammverzeichnis und der Anbieter ist das Verzeichnis auf derselben Ebene. Beispielsweise enthält eine Datei: src/Acme/Foo.php die Klasse AcmeFoo .
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, wird eine Autoloader-Klasse zurückgegeben, sodass Sie den zurückgegebenen Wert eingeben können in eine Variable einfügen und dann weitere Namespaces hinzufügen. Dies ist 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 des 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 vonEinführung in die Rolle der Datei „composer.lock“.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!