Laravel Octane ist eine offizielle Erweiterung für das Laravel-Framework, die die Performance deiner Anwendung dramatisch verbessert, indem sie Laravel auf Hochleistungsservern wie Swoole oder RoadRunner ausführt.
Statt bei jeder HTTP-Anfrage den Laravel-Framework-Code neu zu laden (wie bei PHP-FPM üblich), hält Octane deine Anwendung permanent im Speicher. Das spart Bootstrapping-Zeit und macht deine App viel schneller.
Laravel Octane nutzt Worker-basierte Server (z. B. Swoole oder RoadRunner), die:
Die Laravel-Anwendung einmalig booten,
Dann Anfragen wiederholt und schnell verarbeiten, ohne das Framework neu zu starten.
Vorteil | Beschreibung |
---|---|
⚡ Höhere Performance | Bis zu 10x schneller als klassische Laravel-Setups mit PHP-FPM |
🔁 Persistente Worker | Keine Neuinitalisierung bei jeder Anfrage |
🌐 WebSockets & Echtzeit | Direkte Unterstützung dank Swoole/RoadRunner |
🧵 Nebenläufigkeit | Möglichkeit zur parallelen Verarbeitung von Aufgaben |
🔧 Built-in Features | Task Worker, Route Watcher, Task Dispatching usw. |
RoadRunner ist ein High-Performance Application Server für PHP, der von Spiral Scout entwickelt wurde. Er ersetzt den klassischen PHP-FPM (FastCGI Process Manager) und bietet durch eine dauerhafte Ausführung deiner PHP-Anwendung einen massiven Performance-Schub – besonders bei Frameworks wie Laravel oder Symfony.
PHP-Skripte werden nicht bei jeder Anfrage neu geladen, sondern laufen dauerhaft in sogenannten Worker-Prozessen (ähnlich wie bei Node.js oder Swoole).
Dadurch sparst du dir das erneute Bootstrapping deiner App bei jedem Request – das ist wesentlich schneller als bei PHP-FPM.
RoadRunner selbst ist in der Programmiersprache Go geschrieben – das bedeutet hohe Stabilität, einfache Cross-Plattform-Deployments und parallele Verarbeitung von Anfragen.
HTTP-Server (inkl. HTTPS, Gzip, CORS, etc.)
PSR-7 & PSR-15 Middleware-Kompatibilität
Unterstützung für:
Hot Reload für Änderungen im Code (mit Watch-Modul)
RoadRunner startet PHP-Worker-Prozesse.
Die Worker laden einmal den gesamten Framework-Bootstrap.
RoadRunner verteilt HTTP- oder gRPC-Anfragen an die Worker.
Die Antwort wird über Go zurückgegeben – schnell und parallel.
Laravel + RoadRunner (statt Laravel + PHP-FPM)
Anwendungen mit hoher Request-Frequenz
APIs, Microservices, Echtzeit-Anwendungen (z. B. mit WebSockets)
Serverless-ähnliche Dienste, wo Latenz kritisch ist
Eigenschaft | PHP-FPM | RoadRunner |
---|---|---|
Bootstrapping pro Request | Ja | Nein (persistente Worker) |
Geschwindigkeit | Gut | Exzellent |
WebSockets | Nicht direkt | Ja |
gRPC | Nein | Ja |
Sprache | C | Go |
Die .htaccess
-Datei ist eine Konfigurationsdatei für Apache-Webserver, mit der du das Verhalten deiner Website direkt beeinflussen kannst – ohne Zugriff auf die zentrale Serverkonfiguration. Sie befindet sich typischerweise im Root-Verzeichnis deiner Website (z. B. /public_html
oder /www
).
Die .htaccess
wirkt nur auf Apache-Servern (nicht bei nginx).
Änderungen gelten sofort, du brauchst den Server nicht neu zu starten.
Viele Shared-Hosting-Anbieter erlauben .htaccess
, aber nicht alle Befehle sind immer erlaubt.
Fehlerhafte Einträge können deine Seite unbrauchbar machen – also Vorsicht beim Bearbeiten.
GitHub Actions ist ein Feature von GitHub, mit dem du automatisierte Workflows für deine Softwareprojekte erstellen kannst – direkt im GitHub-Repository.
Du kannst CI/CD-Pipelines (Continuous Integration / Continuous Deployment) aufbauen, z. B.:
🛠️ Code bei jedem Push oder Pull Request builden
🚀 Software automatisch deployen (z. B. auf einen Webserver, in die Cloud, zu DockerHub)
📦 Releases erstellen (z. B. ZIP-Dateien, Versionstags)
🔄 Cronjobs oder geplante Tasks laufen lassen
GitHub Actions basiert auf sogenannten Workflows, die du in einer Datei definierst:
Die Datei heißt z. B. .github/workflows/ci.yml
Sie ist im YAML-Format
Du definierst Events (z. B. push
, pull_request
) und Jobs (z. B. build
, test
)
Jobs bestehen aus Steps, die Befehle oder Aktionen ausführen
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '20'
- run: npm install
- run: npm test
Eine Action ist ein einzelner Schritt, den man in einem Workflow ausführt. Es gibt:
Vorgefertigte Actions (z. B. actions/checkout
, setup-node
, upload-artifact
)
Eigene Actions (z. B. Shell-Skripte oder Docker-Container)
Du kannst Actions im GitHub Marketplace finden und nutzen.
Spart manuelle Arbeit
Verbessert Codequalität (durch automatisierte Tests)
Macht Deployments reproduzierbar
Alles direkt in GitHub – kein externer CI-Dienst nötig (wie Jenkins oder Travis CI)
Docker Compose ist ein Werkzeug, mit dem du mehrere Docker-Container als einen einzigen Service definieren und starten kannst. Statt jeden Container einzeln über die Docker-CLI zu starten, kannst du mit Docker Compose eine docker-compose.yml
-Datei schreiben, in der du alle benötigten Dienste (z. B. Datenbank, Webserver, App-Container) deklarierst.
Docker Compose = Projektbeschreibung + Mehrere Container + Ein Befehl zum Starten
docker-compose.yml
version: '3.9'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
redis:
image: "redis:alpine"
In diesem Beispiel:
Ein Container baut die lokale Webanwendung.
Ein zweiter Container nutzt das offizielle Redis-Image.
Beide Container sind miteinander vernetzt.
docker-compose up # Startet alle Container im Vordergrund
docker-compose up -d # Startet im Hintergrund (detached)
docker-compose down # Stoppt und entfernt Container, Netzwerke etc.
✅ Einfaches Setup für Multi-Container-Anwendungen
✅ Alles wird in einer Datei versioniert (z. B. für Git)
✅ Reproduzierbare Entwicklungsumgebungen
✅ Leichtes Hoch- und Runterfahren ganzer Stacks
Lokale Entwicklung mit mehreren Services (z. B. App + DB)
Integrationstests mit vollständigem Stack
Simpler Deployment-Workflow (z. B. über CI/CD)
Ein Headless CMS (Content Management System) ist ein Content-Management-System, bei dem das Backend (die Inhalte und ihre Verwaltung) vom Frontend (der Darstellung für die Nutzer) vollständig getrennt ist.
Backend und Frontend sind gekoppelt.
Die Inhalte werden im System erstellt und direkt als HTML über ein fest integriertes Theme angezeigt.
Vorteil: Alles aus einer Hand.
Nachteil: Eingeschränkte Flexibilität, schwer für Multi-Plattform-Ausgabe (z. B. App + Webseite + Smartwatch).
Nur Backend.
Inhalte werden über eine API (z. B. REST oder GraphQL) bereitgestellt.
Das Frontend (z. B. eine React-Webseite, native App, Digital Signage) holt sich die Inhalte dynamisch.
Vorteil: Sehr flexibel, geeignet für Multi-Channel-Ausspielung.
Nachteil: Frontend muss separat entwickelt werden (mehr Aufwand).
Webseiten mit modernen JavaScript-Frameworks (z. B. React, Next.js, Vue)
Mobile Apps, die denselben Content wie die Website zeigen sollen
Omnichannel-Strategien: Website, App, IoT-Geräte, etc.
Contentful
Strapi
Sanity
Directus
Prismic
Storyblok (Hybrid-Ansatz mit Visual Editor)
Storyblok ist ein benutzerfreundliches, headless Content-Management-System (CMS), das Entwicklern und Marketing-Teams hilft, Inhalte schnell und effizient zu erstellen, zu verwalten und zu veröffentlichen. Es bietet eine visuelle Bearbeitungsoberfläche, die es ermöglicht, Inhalte in Echtzeit zu gestalten, und ist flexibel mit verschiedenen Frameworks und Plattformen kompatibel. Durch seine API-first-Architektur können Inhalte auf jeder digitalen Plattform ausgespielt werden, was es ideal für moderne Web- und App-Entwicklung macht.
Shopware ist ein modulares E-Commerce-System aus Deutschland, mit dem man Online-Shops erstellen und verwalten kann. Es richtet sich sowohl an kleine Händler als auch an große Unternehmen und zeichnet sich durch seine Flexibilität, Skalierbarkeit und moderne Technologie aus.
Hier ein Überblick:
Hersteller: Shopware AG (gegründet 2000 in Deutschland)
Technologie: PHP, Symfony-Framework, API-first-Ansatz
Aktuelle Version: Shopware 6 (seit 2019)
Open Source: Ja, mit kostenpflichtigen Erweiterungen
Headless-Ready: Ja, unterstützt Headless-Commerce über APIs
Produktverwaltung: Varianten, Staffelpreise, Medien, SEO
Vertriebskanäle: Webshop, POS, Social Media, Marktplätze
Content Management: Integriertes CMS (Shopping Experiences)
Zahlung & Versand: Viele Schnittstellen, z. B. PayPal, Klarna
Mehrsprachigkeit & Multi-Currency
B2B- & B2C-Features
App-System & API für Erweiterungen
Startups (kostenfreie Community Edition)
KMU und Mittelstand
Enterprise-Kunden mit individuellen Anforderungen
Besonders beliebt im deutschsprachigen Raum
Made in Germany → DSGVO-konform
Hohe Individualisierbarkeit
Aktives Ökosystem & Community
Skalierbar für wachsende Anforderungen
Ein Join Point ist ein Begriff aus der Aspect-Oriented Programming (AOP), also der aspektorientierten Programmierung.
Ein Join Point ist eine definierte Stelle im Ablauf eines Programms, an der zusätzlicher Code (ein sogenannter Aspekt) eingefügt werden kann.
Aufruf einer Methode
Ausführung einer Methode
Zugriff auf ein Attribut (lesen oder schreiben)
Werfen einer Ausnahme
In AOP wird Programmcode modularisiert, indem Querschnittsfunktionen (wie Logging, Sicherheit, Transaktionsmanagement) aus dem eigentlichen Anwendungscode ausgelagert werden. Diese Funktionen werden dann an bestimmten Punkten im Programmablauf (den Join Points) „eingeschnitten“.
Pointcut: Eine Ausdrucksweise, mit der beschrieben wird, welche Join Points betroffen sind (z. B. „alle Methoden mit dem Namen save*
“).
Advice: Der Code, der an einem Join Point ausgeführt wird (z. B. „logge diesen Methodenaufruf“).
Aspect: Eine Kombination aus Pointcut(s) und Advice(s) – also ein vollständiges Modul, das eine Querschnittsfunktion implementiert.
@Before("execution(* com.example.service.*.*(..))")
public void logBeforeMethod(JoinPoint joinPoint) {
System.out.println("Aufruf von: " + joinPoint.getSignature().getName());
}
→ Hier wird vor jedem Methodenaufruf in einem bestimmten Package ein Logging-Code ausgeführt – und joinPoint.getSignature()
liefert Details zum konkreten Join Point.
SVG steht für Scalable Vector Graphics und ist ein XML-basiertes Dateiformat, das verwendet wird, um 2D-Grafiken zu beschreiben. Es ermöglicht die Darstellung von Vektorgrafiken, die sich ohne Qualitätsverlust skalieren lassen. SVG wird häufig in Webdesigns verwendet, da es eine hohe Auflösung bei jeder Größe bietet und leicht in Webseiten integriert werden kann.
Ein paar wichtige Merkmale von SVG:
Vektorbasiert: SVG-Grafiken bestehen aus Linien, Kurven und Formen, die mathematisch definiert sind, im Gegensatz zu Rastergrafiken (wie JPEG oder PNG), die aus Pixeln bestehen.
Skalierbarkeit: Da SVG-Grafiken auf Vektoren basieren, können sie ohne Verlust der Bildqualität auf jede Größe skaliert werden, was sie besonders für responsive Designs geeignet macht.
Interaktivität und Animation: SVG unterstützt Interaktivität (z. B. durch JavaScript) und Animationen (z. B. durch CSS oder SMIL).
Suchmaschinenfreundlich: Der Inhalt einer SVG-Datei ist textbasiert und kann von Suchmaschinen indexiert werden, was SEO-Vorteile bieten kann.
Kompatibilität: SVG-Dateien können in den meisten modernen Webbrowsern angezeigt werden und eignen sich hervorragend für Logos, Icons und Diagramme.