So installieren und verwenden Sie Composer unter Debian 8

Einführung

Composer ist ein beliebtes Abhängigkeitsmanagement-Tool für PHP, das hauptsächlich zur Erleichterung der Installation und Aktualisierung von Projektabhängigkeiten entwickelt wurde. Es prüft, von welchen anderen Paketen ein bestimmtes Projekt abhängt, und installiert sie für Sie. Dabei werden die entsprechenden Versionen verwendet, die den Projektanforderungen entsprechen.

Dieses Tutorial zeigt, wie Sie Composer auf einem Debian 8-Server installieren und starten.

Voraussetzungen

Für dieses Tutorial benötigen Sie:

Schritt 1 - Installieren der Abhängigkeiten

Bevor wir Composer herunterladen und installieren, müssen wir sicherstellen, dass auf unserem Server alle erforderlichen Abhängigkeiten installiert sind.

Aktualisieren Sie zunächst den Paketmanager-Cache.

sudo apt-get update

Lassen Sie uns nun die Abhängigkeiten installieren. Wir benötigen "+ curl ", um Composer und " php5-cli ", ein PHP-Paket, herunterzuladen, um es zu installieren und auszuführen. Composer verwendet ` git +`, ein Versionskontrollsystem, um Projektabhängigkeiten herunterzuladen. Mit diesem Befehl können Sie alle drei Pakete gleichzeitig installieren:

sudo apt-get install curl php5-cli git

Nachdem die wesentlichen Abhängigkeiten installiert sind, fahren wir fort und installieren Composer selbst.

Schritt 2 - Composer herunterladen und installieren

Wir folgen den Anweisungen in der offiziellen Dokumentation von Composer mit einer kleinen Änderung, um Composer global unter "+ / usr / local / bin +" zu installieren. Dadurch kann jeder Benutzer auf dem Server Composer verwenden.

Laden Sie das Installationsprogramm in das Verzeichnis "+ / tmp +" herunter.

php -r "copy('https://getcomposer.org/installer', '/tmp/composer-setup.php');"

Besuchen Sie Kneipen- und Signaturseite von Composer und kopieren Sie die SHA-384-Zeichenfolge oben. Führen Sie dann den folgenden Befehl aus, indem Sie "++" durch die Zeichenfolge ersetzen, die Sie kopiert haben.

php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('/tmp/composer-setup.php'); } echo PHP_EOL;"

Dieser Befehl überprüft den Hash der heruntergeladenen Datei mit dem richtigen Hash von der Composer-Website. Wenn dies zutrifft, wird * Installer checked * gedruckt. Wenn dies nicht der Fall ist, wird * Installer corrupt * ausgegeben. In diesem Fall sollten Sie überprüfen, ob Sie die SHA-384-Zeichenfolge korrekt kopiert haben.

Als Nächstes installieren wir Composer. Um es global unter "+ / usr / local / bin " zu installieren, verwenden wir das Flag " - install-dir ". ` - Dateiname +` teilt dem Installationsprogramm den Namen der ausführbaren Datei von Composer mit. So machen Sie das in einem Befehl:

sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

Es wird eine Nachricht wie die folgende angezeigt:

OutputAll settings correct for using Composer
Downloading...

Composer (version 1.3.2) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

Sie können überprüfen, ob Composer korrekt installiert ist, indem Sie die Version überprüfen.

composer --version

Sie sollten die installierte Version sehen. Zum Zeitpunkt dieses Schreibens ist die Version:

Komponistenversion

Composer version 1.3.2 2017-01-27 18:23:41

Schließlich können Sie das Installationsskript sicher entfernen, da Sie es nicht mehr benötigen.

rm /tmp/composer-setup.php

Der Composer ist nun eingerichtet und wird ausgeführt. Er wartet darauf, von Ihrem Projekt verwendet zu werden. Im nächsten Abschnitt generieren Sie die Datei "+ composer.json", die die PHP-Bibliotheken enthält, von denen Ihr Projekt abhängt.

Schritt 3 - Generieren der composer.json-Datei

Um Composer für ein Projekt verwenden zu können, benötigen Sie eine "+ composer.json" -Datei. Die Datei + composer.json teilt Composer mit, welche Abhängigkeiten für Ihr Projekt heruntergeladen werden müssen und welche Versionen jedes Pakets installiert werden dürfen. Dies ist wichtig, damit Ihr Projekt konsistent bleibt und keine instabilen Versionen installiert werden, die möglicherweise Probleme mit der Abwärtskompatibilität verursachen können.

Sie müssen diese Datei nicht manuell erstellen. Wenn Sie dies tun, können Sie leicht auf Syntaxfehler stoßen. Composer generiert automatisch die Datei "+ composer.json", wenn Sie Ihrem Projekt eine Abhängigkeit hinzufügen, indem Sie den Befehl "+ required" verwenden. Auf die gleiche Weise können auch zusätzliche Abhängigkeiten hinzugefügt werden, ohne dass diese Datei manuell bearbeitet werden muss.

Das Installieren eines Pakets mit Composer als Abhängigkeit in einem Projekt umfasst normalerweise die folgenden Schritte:

  • Identifizieren Sie, welche Art von Bibliothek die Anwendung benötigt

  • Durchsuchen Sie eine geeignete Open Source-Bibliothek unter Packagist.org, dem offiziellen Repository für Composer

  • Wählen Sie das Paket, von dem Sie abhängen möchten

  • Führen Sie "+ composer require" aus, um die Abhängigkeit in die Datei "+ composer.json" aufzunehmen, und installieren Sie das Paket

Wir werden sehen, wie dies in der Praxis mit einer einfachen Demo-Anwendung funktioniert.

Das Ziel dieser Anwendung ist es, einen bestimmten Satz in einen slug umzuwandeln, der eine URL-freundliche Zeichenfolge ist. Hiermit werden Seitentitel in URL-Pfade konvertiert (wie der letzte Teil der URL für dieses Lernprogramm).

Beginnen wir mit der Erstellung eines Verzeichnisses für das Projekt. Wir nennen es * slugify *:

cd ~
mkdir slugify
cd slugify

Als Nächstes suchen wir nach der Bibliothek, die wir verwenden müssen.

Auf Packagist nach Paketen suchen

Als Nächstes suchen wir unter Packagist nach einem Paket, mit dessen Hilfe Schnecken generiert werden können. Wenn Sie nach "slug" suchen, wird eine Liste von Paketen angezeigt. Auf der rechten Seite jedes Pakets in der Liste werden zwei Zahlen angezeigt: Die obere Zahl gibt an, wie oft das Paket installiert wurde, und die untere Zahl gibt an, wie oft ein Paket auf GitHub mit einem Stern versehen wurde.

Im Allgemeinen sind Pakete mit mehr Installationen und Sternen stabiler, da sie von vielen Benutzern verwendet werden. Es ist auch wichtig, die Paketbeschreibung zu überprüfen, um sicherzustellen, dass das Paket wirklich das ist, wonach Sie suchen.

Was wir brauchen, ist ein einfacher String-to-Slug-Konverter. Als Beispiel verwenden wir hier das Paket "+ cocur / slugify +". Es scheint eine gute Übereinstimmung zu sein, da es eine angemessene Menge an Installationen und Sternen hat.

Sie werden feststellen, dass die Pakete in Packagist einen Herstellernamen und einen Paketnamen haben. Jedes Paket hat eine eindeutige Kennung (einen Namespace) im selben Format, das GitHub für seine Repositorys verwendet: + vendor / package +. Die Bibliothek, die wir installieren möchten, verwendet den Namespace "+ cocur / slugify +". Der Namespace ist das, was wir benötigen, um das Paket in unserem Projekt zu benötigen.

Nachdem wir die gewünschte Bibliothek identifiziert haben, fügen wir sie der Datei "+ composer.json" hinzu.

Paket anfordern

Wir können + composer require + ausführen, um die Bibliothek als Abhängigkeit einzuschließen, und auch die Datei + composer.json + für das Projekt generieren:

composer require
OutputUsing version ^2.3 for cocur/slugify
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
 - Installing cocur/slugify (v2.3) Downloading: 100%
Writing lock file
Generating autoload files

Wie Sie der Ausgabe entnehmen können, hat Composer automatisch entschieden, welche Version des Pakets verwendet werden soll. Wenn Sie das Verzeichnis Ihres Projekts jetzt überprüfen, enthält es zwei neue Dateien: "+ composer.json" und "+ composer.lock" sowie ein "+ vendor / +" -Verzeichnis:

ls -l
Outputtotal 12
-rw-r--r-- 1 sammy sammy   59 Feb  1 13:43 composer.json
-rw-r--r-- 1 sammy sammy 2896 Feb  1 13:43 composer.lock
drwxr-xr-x 4 sammy sammy 4096 Feb  1 13:43 vendor

In der Datei + composer.lock + werden Informationen darüber gespeichert, welche Versionen der einzelnen Pakete installiert sind. Stellen Sie sicher, dass dieselben Versionen verwendet werden, wenn jemand anderes Ihr Projekt klont und dessen Abhängigkeiten installiert. Im Verzeichnis + vendor / + befinden sich die Projektabhängigkeiten. Der Ordner "+ vendor / " sollte nicht in die Versionskontrolle übernommen werden. Sie müssen nur die Dateien ` composer.json ` und ` composer.lock +` einfügen.

Möglicherweise stellen Sie fest, dass die Datei + composer.lock + spezifische Informationen über die Version der PHP-Bibliotheken enthält, von denen unser Projekt abhängt. Composer verwendet eine spezielle Syntax, um Bibliotheken auf bestimmte Versionen zu beschränken. Mal sehen, wie das funktioniert.

Grundlegendes zu Versionsbeschränkungen

Wenn Sie den Inhalt Ihrer "+ composer.json" -Datei überprüfen, sehen Sie etwa Folgendes:

cat composer.json

Ausgabe

{
   "require": {
       "cocur/slugify": "^2.3"
   }
}

Vor der Versionsnummer steht ein Caret + ^ +. Composer unterstützt verschiedene Einschränkungen und Formate für die Definition der erforderlichen Paketversion, um Flexibilität zu bieten und gleichzeitig Ihr Projekt stabil zu halten. Der von der automatisch generierten Datei + composer.json + verwendete Caret-Operator ist der empfohlene Operator für maximale Interoperabilität nach semantischer Versionierung. In diesem Fall wird "* 1.3 " als minimale kompatible Version definiert und es können Aktualisierungen auf alle zukünftigen Versionen unter " 2.0 *" vorgenommen werden. Weitere Informationen zum Versionsprinzip finden Sie unter Composer-Versionsdokumentation.

Bisher haben wir gesehen, wie wir die PHP-Bibliotheken, die unser Projekt mit Composer benötigt, mithilfe der Datei "+ composer.json " hinzufügen und einschränken können. Der nächste Schritt besteht darin, diese Bibliotheken tatsächlich in unserer Anwendung zu verwenden. Zu diesem Zweck stellt Composer die Datei " autoload.php" zur Verfügung, die das Laden externer Bibliotheken erleichtert.

Schritt 4 - Einschließen des Autoload-Skripts

Composer bietet ein Autoload-Skript, das Sie in Ihr Projekt aufnehmen können, um das Autoloading kostenlos zu erhalten. Dies erleichtert die Arbeit mit Abhängigkeiten und das Definieren eigener Namespaces erheblich. Das Einzige, was Sie tun müssen, ist, die Datei + vendor / autoload.php in Ihre PHP-Skripte aufzunehmen, bevor Sie eine Klasseninstanziierung durchführen.

Kehren wir zur Beispielanwendung "+ slugify " zurück. Erstellen Sie mit " nano " oder Ihrem bevorzugten Texteditor ein " test.php " -Skript, in dem wir die Bibliothek " cocur / slugify +" verwenden.

nano test.php

test.php

<?php
require __DIR__ . '/vendor/autoload.php';

use Cocur\Slugify\Slugify;

$slugify = new Slugify();

echo $slugify->slugify('Hello World, this is a long sentence and I need to make a slug from it!');

Sie können das Skript in der Befehlszeile ausführen mit:

php test.php

Dies sollte die Ausgabe erzeugen:

Outputhello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it

Sie haben Composer vollständig eingerichtet. Lesen Sie jedoch weiter, um zu erfahren, wie Sie die Installation warten.

Schritt 5 - Aktualisieren von Composer- und Projektabhängigkeiten (optional)

Um Composer selbst zu aktualisieren, können Sie den eingebauten Befehl + self-update + verwenden. Da Composer global installiert ist, müssen Sie den Befehl mit Root-Rechten ausführen.

sudo -H composer self-update

Sie können eine oder mehrere bestimmte Bibliotheken aktualisieren, indem Sie sie mit + composer update spezifisch auflisten.

composer update /

Wenn Sie alle Ihre Projektabhängigkeiten aktualisieren möchten, führen Sie den Befehl + update aus.

composer update

Dadurch wird nach neueren Versionen der Bibliotheken gesucht, die Sie in Ihrem Projekt benötigen. Wenn eine neuere Version gefunden wird und diese mit der in der Datei "+ composer.json " definierten Versionsbeschränkung kompatibel ist, wird die zuvor installierte Version ersetzt. Die Datei ` composer.lock +` wird aktualisiert, um diese Änderungen widerzuspiegeln.

Fazit

Composer ist ein mächtiges Werkzeug, das jeder PHP-Entwickler in seinem Dienstprogramm haben sollte. Es bietet nicht nur eine einfache und zuverlässige Möglichkeit zum Verwalten von Projektabhängigkeiten, sondern setzt auch einen neuen De-facto-Standard für das Teilen und Erkennen von PHP-Paketen, die von der Community erstellt wurden.

In diesem Tutorial haben wir kurz die Grundlagen von Composer beschrieben: wie man es installiert, wie man ein Projekt erstellt und Pakete dafür findet und wie man es wartet. Weitere Informationen finden Sie in der official Composer-Dokumentation.