Composer ist der Standard-Paketmanager für PHP und unverzichtbar für jedes Laravel-Projekt. Über SSH können Sie Composer-Befehle direkt auf Ihrem Hosting ausführen, um Pakete zu installieren, zu aktualisieren und zu verwalten. In diesem Handbuch erfahren Sie alles über die effektive Nutzung von Composer über SSH für Ihre Laravel-Anwendungen.

Was ist Composer und warum benötigen Sie ihn?

Composer ist ein Abhängigkeitsmanager, der automatisch alle benötigten PHP-Bibliotheken für Ihr Projekt verwaltet. Er verfolgt, welche Pakete Sie benötigen, und installiert diese in den richtigen Versionen. Laravel selbst wird ebenfalls über Composer installiert und aktualisiert. Dies macht Composer zu einem wesentlichen Werkzeug für jeden Laravel-Entwickler.

Die wichtigsten Vorteile von Composer:

  • Automatische Verwaltung aller Projektabhängigkeiten, was bedeutet, dass Sie sich keine Sorgen um die manuelle Versionsverwaltung machen müssen.
  • Versionskontrolle, damit Pakete kompatibel bleiben, was Ihr Projekt stabiler und zuverlässiger macht.
  • Einfache Aktualisierung von Bibliotheken mit einem Befehl, was Ihnen Zeit und Mühe spart.
  • Autoloading von PHP-Klassen ohne manuelle Includes, was Ihren Code sauberer und leichter wartbar macht.
  • Zugang zu Tausenden von Paketen über Packagist.org, wodurch Sie schnell Funktionalität zu Ihrem Projekt hinzufügen können.

SSH-Zugang für Ihr Hosting aktivieren

Bevor Sie Composer verwenden können, benötigen Sie SSH-Zugang. Bei Theory7 aktivieren Sie dies einfach über DirectAdmin unter den SSH-Optionen. Nach der Aktivierung verbinden Sie sich mit einem SSH-Client. Dies ist ein entscheidender Schritt, da SSH Ihnen ermöglicht, sicher und effizient Befehle auf Ihrem Server auszuführen.

Unter Windows verwenden Sie PuTTY, unter Mac oder Linux das integrierte Terminal:

ssh benutzername@ihredomain.de

Vergessen Sie nicht, Ihren Benutzernamen und Ihre Domain anzupassen. Einmal verbunden, haben Sie Zugriff auf die Kommandozeile Ihres Servers, wo Sie Composer verwenden können.

Verfügbarkeit von Composer überprüfen

Auf Theory7-Hosting ist Composer normalerweise bereits installiert. Überprüfen Sie dies mit:

composer --version

Sie sehen dann die installierte Version. Ist Composer nicht verfügbar, installieren Sie es lokal in Ihrem Home-Verzeichnis. Dies kann normalerweise durch Ausführen einiger einfacher Befehle erfolgen, abhängig von Ihrer Serverkonfiguration.

Wesentliche Composer-Befehle für Laravel

Abhängigkeiten installieren

Nach dem Klonen eines Laravel-Projekts installieren Sie alle Pakete:

composer install

Für Produktionsumgebungen verwenden Sie zusätzliche Flags für bessere Leistung:

composer install --no-dev --optimize-autoloader

Die Verwendung des --no-dev-Flags stellt sicher, dass nur die notwendigen Pakete für die Produktion installiert werden, was die Ladezeit Ihrer Anwendung verbessern kann.

Neue Pakete hinzufügen

Fügen Sie ein Paket zu Ihrem Projekt hinzu:

composer require vendor/paket-name

Wenn Sie beispielsweise laravel/sanctum für die API-Authentifizierung hinzufügen möchten, verwenden Sie:

composer require laravel/sanctum

Pakete aktualisieren

Aktualisieren Sie alle Pakete auf die neuesten kompatiblen Versionen:

composer update

Dieser Befehl ist nützlich, um sicherzustellen, dass Sie immer die neuesten Sicherheitsupdates und Funktionen haben. Beachten Sie jedoch, dass dies auch zu Kompatibilitätsproblemen führen kann, testen Sie daher Ihre Anwendung immer nach einem Update.

Autoloader regenerieren

Nach manuellen Änderungen in Ihrer Classmap:

composer dump-autoload

Dies ist besonders nützlich, wenn Sie neue Klassen hinzugefügt oder bestehende Klassen verschoben haben.

Beliebte Laravel-Pakete

Einige häufig verwendete Pakete, die Sie über Composer installieren:

  • laravel/sanctum - API-Authentifizierungstoken, ideal für SPAs und mobile Anwendungen.
  • spatie/laravel-permission - Rollen- und Berechtigungssystem, das Ihnen hilft, Benutzerrechte effektiv zu verwalten.
  • intervention/image - Bilder bearbeiten und zuschneiden, ein Muss für jede Anwendung, die mit Medien arbeitet.
  • barryvdh/laravel-debugbar - Debug-Informationen während der Entwicklung, die Ihnen helfen, Probleme schnell zu identifizieren.
  • laravel/horizon - Warteschlangenüberwachungs-Dashboard, ideal zur Verwaltung Ihrer Hintergrundaufgaben.

Häufige Probleme lösen

Speichergrenzenfehler

Bei großen Projekten kann Composer auf Speichergrenzen stoßen. Erhöhen Sie vorübergehend das Limit:

COMPOSER_MEMORY_LIMIT=-1 composer install

Dieser Befehl setzt das Speicherlimit auf unbegrenzt, was nützlich sein kann für große Installationen oder Updates.

Timeout bei großen Paketen

Erhöhen Sie das Timeout für langsame Downloads:

composer config --global process-timeout 600

Dies kann helfen, wenn Sie mit einer langsamen Internetverbindung arbeiten oder wenn der Server langsam reagiert.

Cache-Probleme

Leeren Sie den Composer-Cache bei seltsamen Fehlern:

composer clear-cache

Dies kann helfen, Probleme zu lösen, die aus veralteten oder beschädigten Cache-Dateien resultieren.

Best Practices für Composer

  • Committen Sie immer composer.lock in Ihr Git-Repository. Dies stellt sicher, dass jeder in Ihrem Team dieselben Versionen verwendet, was Kompatibilitätsprobleme vermeidet.
  • Verwenden Sie install in der Produktion, niemals update. Dies verhindert unerwartete Ausfälle durch neue Versionen.
  • Überprüfen Sie regelmäßig auf Updates mit composer outdated. Dies hilft Ihnen, Ihr Projekt aktuell zu halten.
  • Geben Sie Versionsbeschränkungen in composer.json an. Dies stellt sicher, dass Sie nicht versehentlich auf eine inkompatible Version aktualisieren.
  • Verwenden Sie das --no-dev-Flag auf Produktionsservern. Dies reduziert die Belastung und erhöht die Sicherheit.

composer.json versus composer.lock

Der Unterschied zwischen diesen beiden Dateien ist wichtig:

  • composer.json - Definiert, welche Pakete Sie möchten und welche Versionsbereiche akzeptabel sind. Diese Datei ist die Grundlage Ihrer Projektkonfiguration.
  • composer.lock - Enthält die genauen Versionen, die installiert sind. Diese Datei sorgt dafür, dass Ihr Projekt konsistent bleibt, unabhängig davon, wo es installiert wird.

Durch das Committen von composer.lock stellen Sie sicher, dass jeder in Ihrem Team dieselben Versionen verwendet, was entscheidend für die Zusammenarbeit und die Konsistenz des Projekts ist.

Mit diesem Wissen verwalten Sie effizient alle Pakete für Ihre Laravel-Projekte über SSH. Brauchen Sie Hilfe bei Ihrem Laravel-Hosting? Das Team von Theory7 steht bereit, um Sie bei all Ihren Fragen und Herausforderungen zu unterstützen.