Teil 1 Vorwort und Download

Was das eigene Content Management System können soll und welche Eigenschaften es haben wird.

Inhalt

Download des vollständigen Source-Codes

Das aktuelle und vollständige Content Management System aus dem Workshop I, steht im folgenden Download bereit:

Download: Basic CMS

Den Source-Code können Sie nach herzenslust anpassen, verändern, verbessern, verkaufen und veröffentlichen - allerdings wäre ein Verweis auf CMSWorkbench sehr nett und entspricht auch der Netiquette, denn das Internet soll Wissen kostenloas allen Menschen zur Verfügung stellen.

Was das Basic CMS kann

Das Content Management System, welches in den folgenden Teilen des Workshop I entsteht, ist eine verkürzte Version eines voll ausgebauten CMS, es macht grundsätzlich alle diese Dinge, die auch ein professionelles CMS kann. Es darf Sie daher nicht verwundern, das Sie diesen Kern auch im später voll ausgebauten CMS fast unverändert vorfinden werden - es ist das Fundament Ihres Systems, das System zunächst die folgenden Eigenschaften haben wird:

Basic-CMS Basic CMS

  • Kategorien mit unendlicher Schachtelungstiefe
  • Beiträge im Markdown-Format
  • Attributierung der Beiträge mit YAML
  • Kategorien mit Kategoriebeschreibung und Logo
  • Templating mittels HTML-Vorlagen in Bootstrap
  • 100%ige Trennung von Code und Design

Was dem Basic CMS noch fehlt

In der Grundversion können Sie Beiträge und Kategorien im Markdown-Format anlegen, wie Sie es von vielen anderen Flatfile Content Management Systemen kennen (z.B. PICO CMS). Erzeugen Sie neue Ordner für Kategorien und legen dort Beiträge ab. Sie können zudem Kategorien beleibig tief schachteln. Allerdings findet die Suchmaschine Google eine Schachtelungstiefe von 1 am besten und belohnt solch ein Design mit besserem Ranking bei der Suche.

Die Navigation müssen Sie in dieser Grundversion ebenfalls manuell anlegen und in ein Template einbinden, eine automatische Erzeugung eines Menüs gibt es derzeit noch nicht. Zudem hat das kleine CMS noch keine Möglichkeit es mit nützlichen Plugins zu erweitern, das ändert sich aber in Workshop II.

Das CMS nutzt einen sehr einfachen aber effektiven Template-Mechanismus für das Parsing der Daten in das Template, komplexe Template-Logiken lassen sich damit allerdings nicht abbilden aber auch das ändert sich in den kommenden Workshops.

Das MVC-Design Pattern

Damit die Programmierung des eigenen CMS leichter und übersichtlicher wird, nutzt es das so genannte MVC-Patterns. Das MVC-Pattern teilt die vielen Programme Ihres Content Management Systems in sinnvolle Funktionsgruppen wie Model (Datenmodell), View (Anzeige des Templates) und Controller (Steuerung) auf. Damit weisen Sie den Arbeitsschritten Steuern, Content laden und Anzeigen je ein konkretes PHP-Modul zu. Durch die Nutzung des MVC-Modells verbessern Sie die Übersicht des späteren CMS erheblich (auch wenn das Basic CMS noch eher spielerisch aussehen mag).

MVC Design MVC Design Pattern für das Basic CMS

Oben im Bild sehen Sie das Konzept des MVC-Patterns. Der zentrale Controller übernimmt die Steuerung für dessen Aufgabenbereich, während er über das Model auf Daten zugreift und diese der View als Anzeige im Browser anweist. Der Controller greift in diesem Design nie selbst auf Daten des CMS zu, diese Aufgabe ist ausschließlich dem Model vorbehalten. Ebenfalls haben Model und View keine Verbindung zueinander, der benötigte Datenaustausch der beiden Klassen erfolgt in der Controller-Klasse. Damit ist die Haupt-Logik übersichtlich und nachvollziehbar in einer zentralen Klasse abgelegt.

Das MVC-Pattern, oder auch Entwurfsmuster genannt, ist lediglich als praktikable Vorgabe für die Entwicklung zu betrachten, es bleibt daher jedem Entwickler sebst überlassen, wie streng er diese Vorgaben interpretiert.

Hinweis: Das kleine Basic-CMS trennt den Programmcode zu 100% vom Design, daher wird im Template eingebetteter PHP ignoriert. Der aus einigen anderen CMS bekannte Templating-Style mit <php echo $title; ?> ist in diesem CMS nicht möglich. Erst dadurch wird ein unabhängiges Arbeiten von Entwicklern und Designern sichergestellt, da es keine Überschneidungen der Aufgabenbereiche gibt. Die verabredeten Template-Tokens stellen die einzigen Schnittpunkte dar.

YouTube: 1. Build a CMS using OOP PHP tutorial | PHP MVC design pattern YouTube: 2. Objects in PHP | Build a CMS using OOP PHP tutorial MVC YouTube: 3. PHP Inheritance | Build a CMS using OOP PHP tutorial MVC a Coding Project TecFaetu


Oliver Lohse
2024-02-16
ein eigenes CMS entwickeln programmieren
post
0