Deployer ist ein Open-Source-Deployment-Tool für PHP-Projekte – speziell entwickelt, um Anwendungen wie Laravel, Symfony, Magento, WordPress oder auch generische PHP-Apps automatisiert, wiederholbar und sicher auf Server zu bringen.
Es ist ein CLI-Tool, geschrieben in PHP.
Du definierst dein Deployment in einer deploy.php
-Datei mit klaren Aufgaben (Tasks).
Es setzt auf das Prinzip Zero Downtime Deployment, z. B. durch Symlinks.
Unterstützt mehrstufige Umgebungen (z. B. staging, production).
Du installierst Deployer über Composer:
composer require deployer/deployer --dev
Du generierst ein Template:
vendor/bin/dep init
Du konfigurierst deploy.php
, z. B. für Laravel:
host('mein-server.com')
->set('deploy_path', '/var/www/meinprojekt')
->set('branch', 'main');
task('deploy', [
'deploy:prepare',
'deploy:vendors',
'artisan:migrate',
'deploy:publish',
]);
Du startest das Deployment:
vendor/bin/dep deploy production
Deployer:
Verbindet sich via SSH mit dem Zielserver
Klont das Git-Repository in ein neues Release-Verzeichnis
Installiert Composer-Abhängigkeiten
Führt Tasks aus (z. B. php artisan migrate
)
Verlinkt das neue Release mit dem Live-Verzeichnis (current
)
Löscht alte Releases nach Bedarf
Vorteil | Beschreibung |
---|---|
🚀 Schnell & Skriptbar | Alles per CLI steuerbar |
🔁 Rollback-Funktion | Bei Fehlern einfach zum letzten funktionierenden Release zurück |
⚙️ Flexibel erweiterbar | Eigene Tasks, Hooks und Bedingungen |
🧩 Viele Presets | Für Laravel, Symfony, WordPress etc. |
🔐 Sicher durch SSH | Keine FTP-Abhängigkeit |
Die PHP-Bibliothek Whoops ist ein leistungsstarkes und benutzerfreundliches Fehlermanagement-Tool für PHP-Anwendungen. Sie sorgt dafür, dass Fehler in einer ansprechenden und übersichtlichen Weise dargestellt werden, was die Fehlersuche und -behebung erleichtert.
✅ Schöne, interaktive Fehlerseiten
✅ Detaillierte Stack-Traces mit Code-Vorschau
✅ Einfache Integration in bestehende PHP-Projekte
✅ Unterstützung für verschiedene Frameworks (Laravel, Symfony, Slim, etc.)
✅ Anpassbar durch eigene Handler und Logger
Whoops kann mit Composer installiert werden:
composer require filp/whoops
Hier ist ein einfaches Beispiel, wie du Whoops in deinem PHP-Projekt aktivieren kannst:
require 'vendor/autoload.php';
use Whoops\Run;
use Whoops\Handler\PrettyPageHandler;
$whoops = new Run();
$whoops->pushHandler(new PrettyPageHandler());
$whoops->register();
// Erzeugt einen Fehler (z. B. eine nicht definierte Variable aufrufen)
echo $undefinedVariable;
Falls ein Fehler auftritt, zeigt Whoops eine übersichtliche Debug-Seite an.
Du kannst Whoops auch erweitern, z. B. indem du eine eigene Fehlerbehandlung hinzufügst:
use Whoops\Handler\CallbackHandler;
$whoops->pushHandler(new CallbackHandler(function ($exception, $inspector, $run) {
error_log($exception->getMessage());
}));
Diese Variante loggt Fehler in eine Datei, anstatt sie direkt anzuzeigen.
Whoops wird oft in Entwicklungsumgebungen verwendet, um schnell auf Fehler zu reagieren. In Produktionsumgebungen sollte es jedoch deaktiviert oder durch eine benutzerdefinierte Fehlerseite ersetzt werden.
PSR-4 ist eine PHP-Standard-Empfehlung für das Autoloading von Klassen basierend auf Namespaces und Dateipfaden. Dieser Standard wurde von der PHP-FIG (PHP Framework Interop Group) entwickelt und beschreibt, wie vollständig qualifizierte Klassennamen zu den entsprechenden Dateipfaden gemappt werden. Dadurch kann PHP Klassen automatisch finden und laden, ohne dass manuelle require
- oder include
-Anweisungen nötig sind.
Namespace-Zuordnung: PSR-4 verlangt, dass der Namespace und Klassenname mit der Verzeichnisstruktur und dem Dateinamen übereinstimmen. Jeder Namespace-Präfix wird mit einem Basisverzeichnis verknüpft, und innerhalb dieses Verzeichnisses entspricht die Verzeichnisstruktur dem Namespace.
Basisverzeichnis: Für jeden Namespace-Präfix wird ein Basisverzeichnis definiert, und die Klassen werden in Unterverzeichnissen des Basisverzeichnisses entsprechend ihrer Namespace-Struktur abgelegt. Zum Beispiel:
App\Controllers
ist, sollte die Datei in einem Verzeichnis wie /path/to/project/src/Controllers
liegen.Dateibenennung: Der Klassenname muss genau mit dem Dateinamen übereinstimmen und mit .php
enden.
Kompatibilität mit Autoloadern: Die Implementierung von PSR-4 gewährleistet Kompatibilität mit modernen Autoloadern wie dem von Composer, wodurch PHP Klassen automatisch ohne manuelle Einbindung findet.
Angenommen, Sie haben die Klasse App\Controllers\UserController
, so sollte die Verzeichnisstruktur wie folgt aussehen:
/path/to/project/src/Controllers/UserController.php
In der composer.json
von Composer wird diese Zuordnung wie folgt angegeben:
{
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
Dies weist Composer an, die Klassen im App
-Namespace aus dem src/
-Verzeichnis zu laden. Wenn Sie composer dump-autoload
ausführen, wird Composer das Autoloading gemäß dem PSR-4-Standard konfigurieren.
PSR-4 hat den älteren PSR-0-Standard abgelöst und ist nun der bevorzugte Autoloading-Standard für moderne PHP-Projekte.
Composer Unused ist ein Tool für PHP-Projekte, das verwendet wird, um nicht genutzte Abhängigkeiten in der composer.json
-Datei zu finden. Es hilft Entwicklern, ihre Abhängigkeitsliste zu bereinigen und sicherzustellen, dass keine überflüssigen Bibliotheken in einem Projekt verbleiben, die den Code unnötig aufblähen.
composer.json
definierten Abhängigkeiten.composer.json
als Abhängigkeiten definiert sind, aber im Projektcode nicht verwendet werden.composer.json
: Mit dem Tool können nicht verwendete Abhängigkeiten identifiziert und entfernt werden, um das Projekt schlanker und effizienter zu machen.Composer Unused wird in der Regel in PHP-Projekten eingesetzt, um sicherzustellen, dass nur tatsächlich genutzte Abhängigkeiten vorhanden sind. Dies kann zu einer besseren Performance und einem geringeren Wartungsaufwand führen, da unnötige Bibliotheken entfernt werden.
Composer Require Checker ist ein Tool, das verwendet wird, um die Konsistenz der Abhängigkeiten in PHP-Projekten zu überprüfen, insbesondere bei der Verwendung des Composer-Paketsystems. Es hilft dabei sicherzustellen, dass alle in einem Projekt verwendeten PHP-Klassen und Funktionen durch die in der composer.json
-Datei angegebenen Abhängigkeiten abgedeckt sind.
composer.json
definiert sind, weist das Tool darauf hin.composer.json
deklariert sind, aber im Code nicht verwendet werden, was dabei hilft, das Projekt schlanker zu halten.Dieses Tool ist besonders nützlich für Entwickler, die sicherstellen möchten, dass ihr PHP-Projekt sauber und effizient verwaltet wird und dass keine ungenutzten oder fehlenden Abhängigkeiten auftreten.
CaptainHook ist ein Git-Hook-Manager für PHP, der es Entwicklern ermöglicht, automatisierte Aufgaben im Zusammenhang mit Git-Repositories durchzuführen. Es erleichtert das Einrichten und Verwalten von Git-Hooks, also Skripten, die zu bestimmten Zeitpunkten im Git-Workflow automatisch ausgeführt werden (z. B. vor dem Committen oder Pushen von Code). Dies ist besonders nützlich, um Codestandards durchzusetzen, Tests laufen zu lassen, Commit-Nachrichten zu überprüfen oder fehlerhaften Code zu verhindern.
CaptainHook lässt sich einfach über Composer in Projekte integrieren und bietet Flexibilität, um benutzerdefinierte Hooks und Plugins zu erstellen. Es unterstützt verschiedene PHP-Versionen, wobei die neueste Version PHP 8.0 erfordert.
Packagist ist ein Online-Repository für PHP-Pakete und -Bibliotheken. Es ist eine zentrale Anlaufstelle, auf der PHP-Entwickler und -Projekte Pakete veröffentlichen und suchen können, um Abhängigkeiten für ihre eigenen Projekte zu verwalten. Packagist spielt eine zentrale Rolle im PHP-Ökosystem und ist eng mit Composer, dem PHP-Abhängigkeitsverwaltungstool, verbunden.
Hier sind einige wichtige Informationen und Funktionen von Packagist:
Zentrale Paketquelle: Packagist ist die primäre Paketquelle für Composer, das häufigste PHP-Abhängigkeitsverwaltungstool. Wenn Entwickler Abhängigkeiten in ihren PHP-Projekten deklarieren, sucht Composer standardmäßig in Packagist nach den benötigten Paketen.
Veröffentlichung von Paketen: Entwickler können eigene PHP-Pakete und Bibliotheken auf Packagist veröffentlichen, damit sie von anderen verwendet werden können. Dies ermöglicht die Wiederverwendung von Code und die Förderung von Open Source in der PHP-Community.
Suche und Entdeckung: Packagist bietet eine Suchfunktion, mit der Entwickler nach PHP-Paketen suchen können, um diejenigen zu finden, die ihren Anforderungen entsprechen. Es bietet auch Informationen zu Paketen, einschließlich Versionshistorie und Abhängigkeiten.
Integration mit Composer: Packagist ist eng mit Composer integriert und fungiert als Backend, das von Composer verwendet wird, um Pakete herunterzuladen und zu installieren. Dies erleichtert die Integration von Abhängigkeiten in PHP-Projekte erheblich.
Versionskontrolle und Metadaten: Packagist speichert Metadaten zu Paketen, einschließlich Informationen zu Paketversionen und Abhängigkeiten. Dies ermöglicht es Composer, die richtigen Versionen der Pakete zu ermitteln und zu installieren.
Öffentlich und Open Source: Packagist ist eine öffentliche und Open-Source-Plattform. Dies bedeutet, dass die meisten PHP-Pakete und Bibliotheken, die auf Packagist veröffentlicht werden, ebenfalls Open Source sind und frei verwendet werden können.
Insgesamt erleichtert Packagist die Verwaltung von PHP-Abhängigkeiten erheblich, indem es eine umfassende Sammlung von PHP-Paketen und Bibliotheken bereitstellt und die Integration dieser Pakete in PHP-Projekte vereinfacht. Es spielt eine entscheidende Rolle in der PHP-Entwicklung und hat dazu beigetragen, die Wiederverwendung von Code und die Zusammenarbeit in der PHP-Community zu fördern.
Composer ist ein Dependency-Management-Tool für PHP, das Entwicklern dabei hilft, Abhängigkeiten (Bibliotheken und Pakete) in ihren PHP-Projekten zu verwalten. Es ermöglicht das einfache Hinzufügen, Aktualisieren und Entfernen von PHP-Bibliotheken und stellt sicher, dass alle Abhängigkeiten korrekt aufgelöst und in Ihrem Projekt integriert werden.
Hier sind einige wichtige Aspekte und Funktionen von Composer:
Abhängigkeitsverwaltung: Composer ermöglicht es Entwicklern, Abhängigkeiten für ihre PHP-Projekte in einer Konfigurationsdatei (normalerweise composer.json
) zu definieren. Diese Abhängigkeiten können von Packagist (einem zentralen Repository für PHP-Pakete) oder anderen Paketquellen bezogen werden.
Automatische Auflösung: Composer löst automatisch Abhängigkeiten auf und stellt sicher, dass die richtigen Versionen der benötigten Pakete heruntergeladen und installiert werden. Dadurch wird sichergestellt, dass Ihr Projekt korrekt funktioniert und keine Konflikte zwischen verschiedenen Versionen auftreten.
CLI-Befehle: Composer bietet eine Reihe von Befehlen, die über die Befehlszeile ausgeführt werden, um Abhängigkeiten zu installieren, zu aktualisieren, zu entfernen und andere Aufgaben im Zusammenhang mit der Abhängigkeitsverwaltung durchzuführen.
Lock-Datei: Composer erstellt eine composer.lock
-Datei, die die genauen Versionen der installierten Pakete enthält. Dadurch wird sichergestellt, dass Ihr Projekt auf verschiedenen Umgebungen konsistent ist.
PSR-Standards: Composer folgt den PHP-Standardempfehlungen (PSR), insbesondere PSR-0 und PSR-4, um die Autoloading-Funktionalität für Pakete zu unterstützen. Dies erleichtert die Integration von Paketen in Ihren Code.
Erweiterbarkeit: Composer ist erweiterbar und ermöglicht es, benutzerdefinierte Skripte und Plugins hinzuzufügen, um spezielle Aufgaben im Rahmen des Abhängigkeitsmanagements auszuführen.
Composer hat die Art und Weise, wie PHP-Entwickler Abhängigkeiten verwalten, erheblich verbessert und die Wiederverwendung von Code in PHP-Projekten erleichtert. Es ist ein wichtiges Werkzeug in der PHP-Entwicklung und wird in einer Vielzahl von Projekten und Frameworks eingesetzt, darunter Laravel, Symfony und viele andere.