Heim > Entwicklungswerkzeuge > composer > Allgemeine Befehle und Versionseinschränkungen von Composer

Allgemeine Befehle und Versionseinschränkungen von Composer

藏色散人
Freigeben: 2019-08-21 14:50:18
nach vorne
2380 Leute haben es durchsucht

In der folgenden Spalte des Tutorials zur Composer-Nutzung werden häufig verwendete Paketverwaltungsbefehle und die Einschränkung von Paketversionen erläutert. Ich hoffe, dass es für Freunde in Not hilfreich sein wird!

Allgemeine Befehle und Versionseinschränkungen von Composer

Allgemeine Befehle

Befehl erforderlich

In "Composer-Tutorial “ hat kurz vorgestellt, wie man den Befehl install zum Installieren von Abhängigkeiten verwendet. Zusätzlich zum Installationsbefehl können wir auch den Befehl require verwenden, um eine Abhängigkeit schnell zu installieren, ohne manuell Abhängigkeitsinformationen in Composer.json hinzuzufügen:

$ composer require monolog/monolog
Using version ^1.19 for monolog/monolog
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing psr/log (1.0.0)
    Downloading: 100%         
 
  - Installing monolog/monolog (1.19.0)
    Downloading: 100%         
 
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
......
monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome)
Writing lock file
Generating autoload files
Nach dem Login kopieren

Composer findet zuerst die entsprechende Version und aktualisiert dann Composer.json Fügen Sie die relevanten Informationen des Monolog-/Monolog-Pakets in require hinzu, laden Sie dann die relevanten Abhängigkeiten für die Installation herunter und aktualisieren Sie schließlich die Composer.lock-Datei und generieren Sie die PHP-Datei zum automatischen Laden.

Update-Befehl

Mit dem Update-Befehl können Sie alle Pakete im Projekt oder bestimmte angegebene Pakete aktualisieren.

# 更新所有依赖
$ composer update
 
# 更新指定的包
$ composer update monolog/monolog
 
# 更新指定的多个包
$ composer update monolog/monolog symfony/dependency-injection
 
# 还可以通过通配符匹配包
$ composer update monolog/monolog symfony/*
Nach dem Login kopieren

Es ist zu beachten, dass die Version, die das Paket aktualisieren kann, durch die Versionsbeschränkung eingeschränkt wird und das Paket nicht auf eine Version aktualisiert wird, die über die eingeschränkte Version hinausgeht. Wenn beispielsweise die Versionseinschränkung des Pakets in Composer.json ^1.10 ist und die neueste Version 2.0 ist. Dann kann der Update-Befehl das Paket nicht auf Version 2.0 aktualisieren, sondern nur auf Version 1.x. Informationen zu Versionseinschränkungen finden Sie in der Einleitung unten.

Befehl „remove“

Verwenden Sie den Befehl „remove“, um ein Paket und seine Abhängigkeiten zu entfernen (wenn die Abhängigkeiten nicht von anderen Paketen verwendet werden):

$ composer remove monolog/monolog
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Removing monolog/monolog (1.19.0)
  - Removing psr/log (1.0.0)
Writing lock file
Generating autoload files
Nach dem Login kopieren

Suchbefehl

Verwenden Sie den Suchbefehl, um nach Paketen zu suchen:

$ composer search monolog
monolog/monolog Sends your logs to files, sockets, inboxes, databases and various web services
 
# 如果只是想匹配名称可以使用--only-name选项
$ composer search --only-name monolog
Nach dem Login kopieren

Show-Befehl

Verwenden Sie den Show-Befehl, um eine Liste aufzulisten Erhalten Sie Informationen zu den aktuell im Projekt installierten Paketen:

# 列出所有已经安装的包
$ composer show
 
# 可以通过通配符进行筛选
$ composer show monolog/*
 
# 显示具体某个包的信息
$ composer show monolog/monolog
Nach dem Login kopieren

Das Obige ist eine Einführung in häufig verwendete Befehle.

Versionseinschränkungen

Wie bereits erwähnt, können wir die Version des Pakets angeben, das heruntergeladen werden soll. Wir möchten beispielsweise Version 1.19 von Monolog herunterladen. Wir können das Ziel durch die Datei „composer.json“ erreichen:

{
    "require": {
        "monolog/monolog": "1.19"
    }
}
Nach dem Login kopieren

und dann den Installationsbefehl ausführen, oder durch den Befehl „require“:

$ composer require monolog/monolog:1.19
 
# 或者
$ composer require monolog/monolog=1.19
 
# 或者
$composer require monolog/monolog 1.19
Nach dem Login kopieren

Zusätzlich zur Angabe der spezifischen Version wie oben können wir Sie können auch verschiedene Einschränkungen übergeben, um die Version anzugeben.

Grundlegende Einschränkungen

Genaue Version

Sie können eine bestimmte Version angeben, um Composer anzuweisen, nur diese Version zu installieren. Wenn jedoch andere Abhängigkeiten andere Versionen erfordern, schlägt die Paketinstallation oder -aktualisierung irgendwann fehl und wird beendet.

Beispiel: 1.0.2

Umfang

Mit Vergleichsoperatoren können Sie den Umfang eines Pakets angeben. Zu diesen Operatoren gehören: >, >=, <, <=, !=.

Sie können mehrere Bereiche definieren, Leerzeichen oder Kommas verwenden, um logisches UND anzuzeigen, und doppelte vertikale Balken || verwenden, um logisches ODER anzuzeigen. Die Priorität von AND ist größer als or.

Es ist zu beachten, dass die Verwendung eines unbegrenzten Bereichs zur Installation unvorhersehbarer Versionen führen und die Abwärtskompatibilität beeinträchtigen kann. Es wird empfohlen, den Bindestrich-Operator zu verwenden.

Beispiel:

>=1.0
>=1.0 <2.0
>=1.0 <1.1 || >=1.2
Nach dem Login kopieren

Geltungsbereich (Bindestriche verwenden)

Ein mit Bindestrich versehener Geltungsbereich gibt den eingeschlossenen Versionsbereich an, was bedeutet, dass es eine Grenzlinie geben muss. Die linke Seite des Bindestrichs gibt die >=-Version an, während die Situation auf der rechten Seite des Bindestrichs etwas komplizierter ist. Wenn es sich bei der Version auf der rechten Seite nicht um eine vollständige Versionsnummer handelt, wird sie mit Platzhalterzeichen vervollständigt. Beispielsweise entspricht 1,0 – 2,0 >=1,0,0 <2,1 (2,0 entspricht 2,0.*), während 1,0.0 – 2,1.0 >=1,0,0 <=2,1 entspricht. 0.

Beispiel: 1.0 - 2.0

Platzhalter

Sie können Platzhalterzeichen verwenden, um Versionen zu definieren. 1.0.* entspricht >=1.0 <1.1.

Beispiel: 1.0.*

Nächste wichtige Versionsoperatoren

Tilde~

Lassen Sie uns zuerst die Rückseite durchgehen. Dies Beispiel erklärt die Verwendung des ~-Operators: ~1.2 entspricht >=1.2 <2.0.0 und ~1.2.3 entspricht >=1.2.3 <1.3.0. Diese Versionseinschränkungsmethode ist sehr praktisch für Projekte, die semantische Versionierung als Versionsnummernstandard verwenden. Beispielsweise definiert ~1.2 die kleinste Nebenversionsnummer, und dann können Sie jede Version unter 2.0 problemlos aktualisieren, da gemäß der Versionsdefinition von Semantic Versioning bei Nebenversions-Upgrades keine Kompatibilitätsprobleme auftreten sollten. Einfach ausgedrückt definiert ~ die Mindestversion und ermöglicht die Aktualisierung der letzten Ziffer der Versionsnummer (wenn Sie es nicht verstehen, schauen Sie sich bitte das vorherige Beispiel noch einmal an).

Beispiel: ~1.2

Es ist zu beachten, dass, wenn ~ gemäß der obigen Aussage auf die Hauptversionsnummer, z. B. ~1, einwirkt, kann Composer Hauptversionen nach Version 1 installieren. aber Tatsächlich wird ~1 als ~1.0 behandelt und es können nur Nebenversionen hinzugefügt werden, keine Hauptversionen.

Zheyin-Nummer^

^操作符的行为跟Semantic Versioning有比较大的关联,它允许升级版本到安全的版本。例如,^1.2.3相当于>=1.2.3 <2.0.0,因为在2.0版本前的版本应该都没有兼容性的问题。而对于1.0之前的版本,这种约束方式也考虑到了安全问题,例如^0.3会被当作>=0.3.0 <0.4.0对待。

例子:^1.2.3

版本稳定性

如果你没有显式的指定版本的稳定性,Composer会根据使用的操作符,默认在内部指定为-dev或者-stable。例如:

Allgemeine Befehle und Versionseinschränkungen von Composer

如果你想指定版本只要稳定版本,你可以在版本后面添加后缀-stable。

minimum-stability 配置项定义了包在选择版本时对稳定性的选择的默认行为。默认是stable。它的值如下(按照稳定性排序):dev,alpha,beta,RC和stable。除了修改这个配置去修改这个默认行为,我们还可以通过稳定性标识(例如@stable和@dev)来安装一个相比于默认配置不同稳定性的版本。例如:

{
    "require": {
        "monolog/monolog": "1.0.*@beta",
        "acme/foo": "@dev"
    }
}
Nach dem Login kopieren

以上是版本约束的介绍。

Das obige ist der detaillierte Inhalt vonAllgemeine Befehle und Versionseinschränkungen von Composer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cuiqingcai
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage