Ein PHP-Projekt ohne composer.json weckt bei Entwicklern zu Recht Misstrauen. Oft steckt dahinter jemand, der Paketverwaltung nicht kennt. Beim SEO CMS war der Verzicht eine bewusste Entscheidung. Sie hat einen Preis, und der steht weiter unten genauso ausführlich wie der Nutzen.
Was eine Abhängigkeit kostet
Ein Paket einzubinden dauert eine Minute. Danach beginnt eine Verpflichtung, die selten jemand mitrechnet:

- Sicherheitsmeldungen verfolgen, auch für die Pakete, die das eigene Paket mitbringt.
- Bei Hauptversionswechseln den eigenen Code anpassen.
- PHP-Versionswechsel überstehen, bei denen ein Paket nicht mitzieht.
- Damit rechnen, dass ein Projekt aufgegeben wird.
Composer bringt für den ersten Punkt ein eigenes Werkzeug mit. Der Befehl audit prüft die installierten Pakete gegen bekannte Sicherheitsmeldungen und erkennt außerdem aufgegebene Pakete und solche, die als Schadsoftware markiert sind [1]. Ausführen und auf die Ergebnisse reagieren muss trotzdem jemand, und zwar regelmäßig, auch in Monaten, in denen am Projekt sonst nichts passiert.
Bei einem Portal, das jahrelang laufen soll und zwischendurch niemanden beschäftigen darf, ist das nach unserer Erfahrung ein Posten, der leicht unterschätzt wird.
Die Rechnung im konkreten Fall
Was hätten Pakete beim SEO CMS beigetragen? Eine Template-Engine ist bei reinem PHP mit Ausgabepufferung überflüssig, die Vorlagen sind einfache PHP-Dateien. Einen Router braucht ein statischer Generator nicht, er schreibt Dateien. Ein ORM wäre für eine überschaubare Zahl von Tabellen mit vorbereiteten Anweisungen ein Umweg. Und ein Markdown-Parser fällt weg, weil die Inhalte als HTML gepflegt werden.
Bliebe die Bequemlichkeit. Die ist echt. Sie rechtfertigt aber keine lange Kette indirekter Abhängigkeiten für ein Programm, das im Kern Daten liest, Zeichenketten zusammensetzt und Dateien schreibt. Auch die Vorschaubilder entstehen ohne Zusatzpaket: Das System zeichnet sie mit der Bildbibliothek GD, die PHP mitbringt.
Noch eine Frage offen?
In der gratis Sprechstunde beantworten wir Fragen zu SEO live, jeden ersten Samstag im Monat um 18 Uhr. Oder du rufst einfach an.
Was der Verzicht erlaubt
Das System läuft auf gewöhnlichem Webspace mit PHP ab 8.3, MySQL oder MariaDB und Apache mit mod_rewrite. Die Dateien lassen sich per FTP hochladen, eine Kommandozeile ist für die Installation nicht nötig. Es gibt keinen Schritt, in dem eine Paketverwaltung erst fremden Code nachlädt, und damit auch keinen, der in zwei Jahren nicht mehr durchläuft. Was Installation und Betrieb im Einzelnen verlangen, steht unter Installation in fünf Schritten.
Für Projekte, die eine Person nebenher betreibt, ist das der Unterschied zwischen "läuft noch" und "müsste man mal migrieren".
Wie ein Update aussieht
Ein Update des SEO CMS ist ein Archiv mit den geänderten Dateien. Du entpackst es in das Verzeichnis der Installation, überschreibst die vorhandenen Dateien und baust den Mandanten im Backend neu. Die Konfiguration mit den Zugangsdaten zur Datenbank liegt nicht im Archiv und bleibt unberührt. Ein Abhängigkeitsbaum wird dabei nicht neu aufgelöst, und es kann kein Paket in einer unerwarteten Version nachrutschen. Was bei vielen Mandanten auf einem Server zu beachten ist, beschreibt der Beitrag Patchen im Mehrmandantenbetrieb.
Die eine Abhängigkeit, die bleibt
Ganz ohne Abhängigkeit geht es nicht: PHP selbst bleibt. Jeder Versionszweig von PHP wird zwei Jahre lang vollständig gepflegt und danach zwei weitere Jahre nur noch mit Korrekturen für kritische Sicherheitslücken [2]. Am 31.10.2026 bekommen die Zweige 8.2 bis 8.5 noch Sicherheitskorrekturen, 8.2 endet am 31.12.2026 [2]. Diese Termine stehen lange vorher fest. Ein Test auf einer neuen Version ist schnell gemacht, weil nichts anderes mitziehen muss.
Der Preis
Mehr eigener Code. Was ein Paket erledigt hätte, steht im SEO CMS selbst geschrieben und muss selbst geprüft werden. Bei Datumsformaten, Zeichenkodierung und der Maskierung von HTML ist das genau die Stelle, an der Eigenbau schiefgehen kann. Ein Beispiel dafür beschreibt der Beitrag Textfelder maskieren: warum h() allein nicht reicht.
Weniger fremde Augen. Ein verbreitetes Paket hat Tausende Nutzer, die Fehler finden und melden. Eigener Code hat nur die Menschen, die ihn pflegen.
Kein Ökosystem. Wer eine Volltextsuche über Hunderttausende Dokumente braucht, schreibt sie nicht selbst. Für so ein Vorhaben ist ein anderes Fundament richtig.
Wo die Grenze liegt
Der Verzicht trägt, solange die Aufgabe klar umrissen bleibt: Daten lesen, HTML erzeugen, Dateien schreiben. Bei Bezahlvorgängen, Benutzerkonten oder Verschlüsselung endet er. Kryptografie selbst zu schreiben wäre Leichtsinn. Dafür bringt PHP fertige Funktionen mit, und das SEO CMS nutzt sie. Passwörter für die Verwaltung speichert es mit password_hash() und bcrypt. Die Funktion erzeugt das Salt selbst und legt Algorithmus, Aufwand und Salt im Ergebnis ab [3].

Die Frage lautet also bei jedem Baustein: Löst er ein Problem, das wir sonst schlechter lösen? Bei Passwort-Hashes heißt die Antwort ja. Bei einer Template-Engine für eine Handvoll Vorlagen heißt sie nein. Welche Bausteine im System stecken, zeigt die Übersicht Alle Funktionen im Überblick, die Schutzmaßnahmen sind unter Sicherheit und Datenschutz beschrieben.
Wie ein CMS grundsätzlich aufgebaut ist, erklärt das Glossar unter CMS.
Du betreibst ein PHP-Projekt mit einer langen Paketliste und fragst dich, was davon wirklich nötig ist? Bring deine Paketliste in die gratis Sprechstunde mit, dann sprechen wir darüber, was davon nötig ist.
- Organisation Command-line interface: audit. Composer Documentation. Stand laufend. abgerufen am 31.10.2026
- Organisation Supported Versions. The PHP Group, php.net. Stand laufend. abgerufen am 31.10.2026
- Organisation password_hash. PHP-Handbuch, The PHP Group. Stand laufend. abgerufen am 31.10.2026
- Organisation Unsupported Branches. The PHP Group, php.net. Stand laufend. abgerufen am 31.10.2026
Häufige Fragen
Ist ein Projekt ohne Composer weniger sicher?
Nicht grundsätzlich. Es hat weniger Angriffsfläche durch fremden Code und mehr durch eigenen. Entscheidend ist, ob Datenbankzugriffe, Maskierung, Passwörter und Sitzungen sauber gelöst sind, und dafür bringt PHP selbst die nötigen Funktionen mit.
Wie hält man ein System ohne Paketverwaltung aktuell?
Indem man den PHP-Versionen folgt. Jeder Zweig wird zwei Jahre voll und zwei weitere Jahre mit Sicherheitskorrekturen gepflegt, die Termine stehen lange vorher fest.
Kann ich trotzdem Pakete ergänzen?
Ja. Eine composer.json anzulegen steht jedem frei, das System hindert dich nicht daran. Mitgeliefert wird keine, damit eine frische Installation ohne Kommandozeile auskommt.
Welche PHP-Version braucht das SEO CMS?
PHP 8.3 oder neuer mit PDO und MySQL-Treiber, getestet ist das System mit 8.4. Ein Zweig, der keine Sicherheitskorrekturen mehr bekommt, sollte im Betrieb nicht mehr laufen. Das gilt seit dem 31.12.2025 für 8.1 [q:4], für 8.2 ab dem 31.12.2026 [q:2].
Läuft das System auf einfachem Webspace?
Ja, wenn PHP, eine MySQL- oder MariaDB-Datenbank und Apache mit mod_rewrite verfügbar sind. Die Dateien lassen sich per FTP hochladen.
Noch eine Frage offen?
In der gratis Sprechstunde beantworten wir Fragen zu SEO live, jeden ersten Samstag im Monat um 18 Uhr. Oder du rufst einfach an.
Zuletzt geprüft am 03.11.2026, nächste Prüfung spätestens im November 2027. Fehler entdeckt? Schreib uns.




