it-swarm.com.de

Wie aktualisiere ich eine einzelne Bibliothek mit Composer?

Ich muss nur 1 Paket für meine SF2-Distribution (DoctrineFixtures) installieren.

Wenn ich renne 

php composer.phar update

Ich bekomme

  - Updating twig/twig (dev-master 39d94fa => v1.13.0)
    The package has modified files:
    M CHANGELOG
    M doc/filters/batch.test
    M doc/filters/index.rst
    M doc/filters/url_encode.rst
    M doc/functions/index.rst
    M doc/tags/index.rst
    M doc/tests/index.rst
    M lib/Twig/Autoloader.php
    M lib/Twig/Compiler.php
    M lib/Twig/CompilerInterface.php
-10 more files modified, choose "v" to view the full list

Es scheint, dass der letzte Entwickler viele Dateien innerhalb des Anbieters bearbeitet hat.

Um das zu umgehen, habe ich es versucht 

php composer.phar update <package_name>

Das scheint aber nicht zu funktionieren. Wie kann ich nur eine Bibliothek von composer.json aktualisieren/installieren?

220
Tool

Um doctrine/doctrine-fixtures-bundle mit Version 2.1.* und minimaler Stabilität @dev zu installieren, verwenden Sie folgendes

composer.phar require doctrine/doctrine-fixtures-bundle:2.1.*@dev

dann nur dieses einzelne Paket aktualisieren:

composer.phar update doctrine/doctrine-fixtures-bundle
391
nifr

Wenn Sie nur einige Pakete und nicht alle aktualisieren möchten, können Sie sie als solche auflisten:

php composer.phar update vendor/package:2.* vendor/package2:dev-master

Sie können auch Platzhalter verwenden, um mehrere Pakete gleichzeitig zu aktualisieren:

php composer.phar update vendor/*
  • --prefer-source: Installiert Pakete von source, falls verfügbar.
  • --prefer-dist: Installiert Pakete von dist, falls verfügbar.
  • --ignore-platform-reqs: Ignoriere die Anforderungen von php, hhvm, lib-* und ext-* und erzwinge die Installation, auch wenn der lokale Rechner diese nicht erfüllt. Siehe auch platformconfig-Option .
  • --dry-run: Simuliert den Befehl, ohne etwas zu tun.
  • --dev: Installiere Pakete, die in require-dev aufgelistet sind (dies ist das Standardverhalten).
  • --no-dev: Installation von Paketen, die in require-dev aufgelistet sind, überspringen. Die Autoloader-Generation überspringt die autoload-dev-Regeln.
  • --no-autoloader: Überspringt die Generierung von Autoloader.
  • --no-scripts: Überspringt die Ausführung von in composer.json definierten Skripts.
  • --no-plugins: Deaktiviert Plugins.
  • --no-progress: Entfernt die Fortschrittsanzeige, die mit einigen Terminals oder Skripten, die keine Rückschrittzeichen verarbeiten, durcheinander kommen kann.
  • --optimize-autoloader (-o): Konvertieren Sie das automatische Laden von PSR-0/4 in classmap, um einen schnelleren Autoloader zu erhalten. Dies wird vor allem für die Produktion empfohlen, kann jedoch etwas dauern, um ausgeführt zu werden. Dies wird derzeit standardmäßig nicht durchgeführt.
  • --lock: Aktualisiert nur den Sperrdatei-Hash, um die Warnung zu unterdrücken, dass die Sperrdatei nicht mehr aktuell ist.
  • --with-dependencies: Fügt der Whitelist auch alle Abhängigkeiten von Whitelist-Paketen hinzu.
  • --prefer-stable: Bevorzugen Sie stabile Versionen von Abhängigkeiten.
  • --prefer-Lowest: Bevorzugt niedrigste Versionen von Abhängigkeiten. Nützlich zum Testen von Mindestversionen von Anforderungen, die normalerweise mit --prefer-stable verwendet werden.
145
Yosvel Quintero

Grundsätzlich können Sie folgendes tun, um ein neues Paket zu installieren.

php composer.phar require

das Terminal fordert Sie dann auf, den Namen des Pakets für die Suche einzugeben.

$ Search for a package []: //Your package name here

Dann fragt das Terminal nach der Version des Pakets (Wenn Sie die neueste Version wünschen, lassen Sie sie einfach leer)

$ Enter the version constraint to require (or leave blank to use the latest version) []: //your version number here

Dann drücken Sie einfach die Return-Taste. Das Terminal fragt nach einem anderen Paket. Wenn Sie kein weiteres installieren möchten, drücken Sie einfach die Eingabetaste, und Sie sind fertig.

8
orhankutlu

Um sicherzustellen, dass Composer ein Paket aktualisiert, das innerhalb der in composer.json festgelegten Versionseinschränkungen auf die letzte Version installiert ist, entfernen Sie das Paket vom Anbieter und führen Sie dann Folgendes aus:

php composer.phar update vendor/package
3
Tsounabe

Angenommen, Sie haben composer.json "parsecsv/php-parsecsv": "0.*", und Ihre composer.lock-Datei 

  "name": "parsecsv/php-parsecsv",
            "version": "0.1.4",

Das neueste 0.*-Release ist 0.3.2 und das neueste Release ist 1.1.0.

Dies geschieht mit den folgenden Befehlen:

composer install parsecsv/php-parsecsv

Dadurch wird die Version 0.1.4 installiert, wie in der Sperrdatei angegeben

composer update parsecsv/php-parsecsv

Dadurch wird das Paket auf 0.3.2 aktualisiert. Die höchste Version in Bezug auf Ihren Composer.json. Der Eintrag in composer.lock wird aktualisiert.

composer require parsecsv/php-parsecsv

Dadurch wird die neueste Version 1.1.0 aktualisiert oder installiert. Ihre composer.lock-Datei und composer.json-Datei werden ebenfalls aktualisiert.

0
Adam

Benutz einfach 

composer require {package/packagename}

mögen

composer require phpmailer/phpmailer

wenn sich das Paket nicht im Herstellerordner befindet. Installieren Sie es und wenn das Paket ein Composer-Aktualisierungspaket für die letzte Version enthält.

0
Mostafa

Weil Sie ein bestimmtes Paket installieren wollten "Ich muss nur ein Paket für meine SF2-Distribution (DoctrineFixtures) installieren."

php composer.phar require package/package-name:package-version würde ausreichen

0
The Anh