Diese Webseite nutzt nur technisch notwendige Cookies.

Composer Tutorial – PHP richtig nutzen

PHP Composer - Steffen Lippke Coding Tutorials

PHP ist lahm?

Composer gibt PHP den Boost, um ernsthafte Projekte zu ermöglichen.

Lerne das Tool mit diesem Guide kennen.

Starten wir!

Was ist Composer?

Composer dirigert das PHP Crescendo
Composer dirigert das PHP Crescendo

Composer verwaltet Deine PHP-Bibliotheken, Abhängigkeiten und Fremdcode. Bei großen PHP-Projekten und APIs möchtest Du die Übersicht behalten. Composer funktioniert ähnlich wie Nuget oder NPM, um Fremdcode in die eigene Anwendung effizient einzubinden. Composer bezeichnet sich als ein Dependency Manager, welcher Abhängigkeiten von Deinem PHP Code in den Ordner Vendor installiert.

Warum Composer verwenden?

Viele Gründe sprechen für Composer:

  • Übersicht behalten: Jedes PHP Projekt mit Abhängigkeiten profitiert von Composer, weil die Abhängigkeiten sortiert gelistet sind.
  • Fremdcode nutzen: Es gibt noch anderen Möglichkeiten Fremdcode zu nutzen, aber Composer macht Dir es einfach.
  • Schnelles updaten: Schwachstellen braucht keiner. Composer eliminiert diese schnell mit einem Update der Bibliotheken.
  • Große Auswahl: Lade Dir aus 400.000 Paketen von packagist.org Deine Bibliothek herunter. packagist.org und Composer sind miteinander integriert.
  • Einfache Konfiguration: Eine Datei beinhaltet alle Configs. Die Config ist im einfach lesbaren JSON geschrieben.
  • Einfach zu erlernen: Die wichtigsten CLI-Befehle kannst Du in diesem Tutorial verwenden.
Packagist ist das Google für PHP Bibs
Packagist ist das Google für PHP Bibs

Wo wird Composer verwendet?

Composer kannst Du für unabhängige PHP-Skripte verwenden, für Webprojekte oder Batch-Verarbeitung. Composer ist die Grundlage für Laravel Anwendungsschnittstellen (API) und Webseiten, sowie Symfony.

Viele Apps, Webseiten und Anwendungen brauchen Anwendungsschnittstellen, um die produktiven Daten zu verwalten. Sie steuern den Zugang zu Datenbank, ändern, löschen und fügen neue Datenbankeinträge hinzu. Composer bietet einen schnellen Weg an, um Laravel und Co zu installieren und mit neuen PHP-Bibliotheken zu erweitern.

Composer installieren

Für Composer brauchen wir PHP. Die folgenden Kommandos funktionieren in Linux Distributionen direkt oder mit dem WSL 2 Ubuntu 22.04 für Windows.

#!/bin/bash
sudo apt install zip unzip php-zip php-dom -y
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
curl -fsSL  https://packages.sury.org/php/apt.gpg| sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/sury-keyring.gpg
sudo apt update
sudo apt-get install php8.2 libapache2-mod-php8.2 php8.2-common php8.2-gd php8.2-mysql php8.2-curl php8.2-intl php8.2-xsl php8.2-mbstring php8.2-zip php8.2-bcmath php8.2-soap php-xdebug php-imagick -y

Du kannst Composer lokal oder global installieren. Die ausführbare Datei kann dabei im Projekt-Ordner liegen oder in einem System-Ordner. So lädst Du Dir Composer lokal:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Projekt anlegen und in PHP verwenden

Der erste Schritt ist es, das Projekt anzulegen. Dazu erstelle einen Ordner oder gehe zu den bestehenden PHP-Skripten. Dort führst Du das Kommando

composer update

aus. Die Software erstellt zwei Dateien composer.json und composer.lock. Die composer.json enthält alle Abhängigkeiten, welche Du „aktiv“ hinzugefügt hast. Die Abhängigkeiten haben oft auch Abhängigkeiten, welche in der composer.lock in voller Länge gelistet sind. Der neue Ordner vendor beinhaltet allen Code, der von Abhängigkeiten stammt. composer.lock sollte genauso in Deinem Git-Repo vorhanden sein, sodass alle Entwickler gleiche Versionen verwenden.

Start mit Composer

Abhängigkeiten kannst Du über packagist suchen und so installieren:

composer require barryvdh/laravel-dompdf

Das Kommando vermerkt die Installation in der composer.json.

Die Inhalte kannst Du mit dem Use-Befehl verwenden:

use Barryvdh\DomPDF\Facade\Pdf;

$pdf = Pdf::loadView('pdf.invoice', $data);
return $pdf->download('invoice.pdf');

Die Abhängigkeit findest Du im Vendor-Ordner.

Aktuell halten und updaten

Damit wir hinter den Feature- und Sicherheitsupdates hinterherkommen, können wir einfach

composer update
composer bump
composer update

ausführen, um die neueste Version zu installieren. Die composer.json hilft das Verhalten von Composer zu steuern. Ein „^“ vor der Version besagt, dass Versionen oberhalb der genannten Version ok sind (keine Breaking Changes). Ein „~“ erlaubt, dass sich die Version um die letzte Minior-Version erhöhen kann und eine exakte Angabe „1.3.2“ verbietet das Update.

Security Checks

Vertrauen ist gut, Kontrolle besser!
Vertrauen ist gut, Kontrolle besser!

Sicherheit ist keine automatische Angelegenheit, sondern muss mit viel Arbeit hergestellt werden. Der Composer und das PHP Framework Laravel bieten ein Modul an, welches die klassischen Sicherheitslücken sucht und findet. Ein Anfänger muss die richtigen Konfigurationen finden, während der Profi im laufenden Betrieb die Übersicht verliert. Das Tool Enlightn hilft dabei, diese Fehler zu finden. Installiere die Software mit:

composer require enlightn/enlightn
php artisan vendor:publish --tag=enlightn

Du kannst eine Pro-Version der Software kaufen, aber die Basic Variante ist im ersten Schritt ausreichend.

Die Software führt 131 Checks durch, was ca. 2 Minuten braucht. Das Tool gruppiert die Checks in Kategorien, um bei der Nacharbeit nicht die Übersicht zu verlieren.

Gehe in das Hauptverzeichnis Deines Laravel Projekts und starte die Untersuchung mit

php artisan enlightn

Die Report Card am Ende zeigt die Fehler und Kategorien auf. Bearbeite die Security und Failed immer zuerst

+----------------+-------------+-------------+-----------+-----------+
| Status         | Performance | Reliability |  Security |     Total |
+----------------+-------------+-------------+-----------+-----------+
| Passed         |   11  (61%) |   25  (89%) | 17  (81%) | 53  (79%) |
| Failed         |    2  (11%) |    3  (11%) |  4  (19%) |  9  (13%) |
| Not Applicable |    5  (28%) |    0   (0%) |  0   (0%) |  5   (7%) |
| Error          |    0   (0%) |    0   (0%) |  0   (0%) |  0   (0%) |
+----------------+-------------+-------------+-----------+-----------+

Das Tool beschreibt jeden Fehler mit einem Text und Link. Die Webseite hinter dem Link erklärt, wie es richtig geht.

Check 63/67: Your application uses stable versions of dependencies. Failed
Your application's dependencies are unstable versions. These may include bug fixes and/or security patches. It is recommended to update to the most stable versions.
Documentation URL: https://www.laravel-enlightn.com/docs/security/stable-dependency-analyzer.html

Wichtige CLI Befehle

Hier ist Dein Spick Zettel für die wichtigsten Composer CLI Commands:

composer initInitialisiert ein neues Composer-Projekt und erstellt eine composer.json-Datei.
composer installInstalliert alle Abhängigkeiten, die in der composer.json-Datei definiert sind.
composer updateAktualisiert alle Abhängigkeiten auf ihre neuesten Versionen.
composer require [package]Fügt ein neues Paket zu deinem Projekt hinzu und installiert es.
composer remove [package]Entfernt ein Paket aus deinem Projekt.
composer dump-autoloadAktualisiert die Autoload-Dateien.
composer validateÜberprüft die composer.json-Datei auf Fehler.
composer showZeigt Informationen über installierte Pakete an.
composer search [keyword]Sucht nach Paketen auf Packagist.
composer outdatedZeigt veraltete Pakete an, die aktualisiert werden können.
composer global require [package]Installiert ein Paket global auf deinem System.
composer global updateAktualisiert alle global installierten Pakete.
composer create-project [package] [directory]Erstellt ein neues Projekt basierend auf einem Paket.
composer self-updateAktualisiert Composer selbst auf die neueste Version.
composer diagnoseÜberprüft die Systemkonfiguration auf mögliche Probleme.
composer archiveErstellt ein Archiv eines Pakets.
composer fundZeigt Informationen zur Finanzierung der Abhängigkeiten an.
composer licensesZeigt die Lizenzen der installierten Pakete an.
composer run-script [script]Führt ein benutzerdefiniertes Skript aus der composer.json-Datei aus.
composer clear-cacheLöscht den Composer-Cache.
Lass uns wissen, was du denkst! War dieses Tutorial /Beitrag hilfreich, oder hast du noch brennende Fragen? Schreibe einen Kommentar und werde Teil unserer wachsenden Community. Teile Deine Erfolge, Herausforderungen und Tipps – gemeinsam schaffen wir Großes im Bereich Security und Coding!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

get rss abo

Jetzt
Abbonnieren
academy

Erhalte Free
Security Kurs

Jeden Monat teile ich mit Mitgliedern
4 neue praxisnahe Tutorials (je 1000+ Wörter).


Trage Deine Mail, damit Du
Deine Coding + Hacking Skills erweitern kannst!