Teil 4 Das Model (MVC)

home php eigenes-cms-entwickeln

KI für Content Creation - Texte, Bilder, Audio und Video erstellen mit ChatGPT und Co   -  Nominiert für den Tiger-Award 2024 in der Kategorie „Business Bestseller“. Schnell und effektiv Content erstellen mit ChatGPT und DeepL. Texte optimieren für SEO mit Semrush und Yoast. Bilder, Audio und Videos kreieren mit DALL-E, Midjourney, Adobe Firefly, Adobe Podcast u.v.m. KI-Tools sinnvoll in den gesamten Content-Marketing-Prozess integrieren. KI-Technologien wie ChatGPT und Co. erleichtern Content Creation um ein Vielfaches – Sie müssen nur wissen, wie diese Tools effektiv eingesetzt werden können.

Wir sind Mitglied im Amazon.Partnernet und können mit Affiliate-Links den Betrieb der Webseite etwas unterstützen, für Sie als Leser ist das natürlich vollkommen kostenlos.

Das Model ist für die Datenbeschaffung in Ihrem Content Management System verantwortlich und greift auf Beiträge zu.

Das Model des MVC-Patterns

Wenden Sie sich im nächsten Schritt der Entwicklung des so genannten Models zu. Das Model macht das Datenmodell sichtbar und stellt Zugriffe auf die physikalischen Daten der Webseite nach außen zur Verfügung. Mit Hilfe des Models greift Ihr selbst programmiertes CMS auf konkrete Beiträge und Artikel zu, denn nur dem Model sind die inneren Strukturen der Daten bekannt.

MVC Design MVC Design Pattern: Das Model

Das Model sort zudem dafür, das die Daten korrekt aufbereitet werden, bevor sie an den Controller weitergereicht werden, daher wundert es nicht, das nur dort die Übersetzung des Markdown-Formats in HTML erfolgt, der Controller erhält dann die fertig umgewandelten Inhalte für die Anzeige.

Dipper fast YAML-Parser

Da die interne Datenstruktur der Beiträge der YAML-Syntax folgt, muss das Model die Beitragsdateien zunächst mit dem YAML-Parser Dipper auflösen. Laden Sie das externe Projekt herunter und binden es im Verzeichnis core/dipper ein. Zudem müssen Sie auch Dipper in der index.php am System mit require_once('core/dipper/Dipper.php') anmelden, um die Funktionen statisch nutzen zu können.

Mit Parsedown in HTML umwandeln

Hat das Modell die Attribute einer Beitragsdatei oder einer Kategorie mit Hilfe des YAML-Parsers entpackt, müssen einige dieser Key-Value Paare aus dem Markdown-Format in gültiges HTML umgewandelt werden, dies passiert mit der Bibliothek Parsedown. Der Parser wird ebenfalls in der index.php mit require_once('core/parsedown/Parsedown.php') geladen und zuvor natürlich im Ordner core/parsedown abgelegt nachdem es heruntergeladen wurde.

Der vollständige Code des Models

Wie bereits eingangs erwähnt, handelt es sich bei diesem selbst programmierten CMS um ein Flatfile CMS, folglich verwendet das Model den PHP-Befehl file_get_contents() zum lesen einer Datei. Soll stattdessen eine Datenbank verwendet werden, kann der Dateizugriff durch einen Datenbank-SELECT ausgetauscht werden.

class Model
{
    public $logo;
    public $title;
    public $content;
    public $description;

    function __construct($url)
    {
        $this->pd          = new Parsedown();

        $file_content      = file_get_contents($url);
        $this->logo        = Dipper::parse(explode('–––', $file_content)[1])['Logo'];
        $this->title       = Dipper::parse(explode('–––', $file_content)[1])['Title'];
        $this->description = Dipper::parse(explode('–––', $file_content)[1])['Description'];
        $this->content     = $this->pd->text( explode('–––', $file_content)[2] );
        //$this->content   = explode('–––', $file_content)[2];
    }

    function __get($value)
    {
        return $this->$value;
    }

    function __set($key, $value)
    {
        return $this->$key = $value;
    }
}

Das Model

Wie im Beitrag zum Controller bereits angeschnitten, wird das Model-Objekt im Controller erzeugt und ihm eine URL der zu ladenden Beitragsdatei oder Indexdatei mitgegeben. Das Model öffnet sodann die Datei und zerlegt die YAML-Struktur mit Hilfe von Dipper in ein Array. Die Key-Value Paare des Metabereichs werden in den Klassenvariablen $title, $logo, $description,... gespeichert. Diese werden dann im Controller zum füllen der View verwendet.

Das Attribut $content ist zwar nicht bestandteil der Beitrags-Struktur, dennoch soll der eigentliche Beitragstext über ein Attribut im Controller zur Verfügung stehen, daher wird $content gesondert erzeugt. Damit der Beitragstext auch in HTML umgewandelt werden kann, wird mit $this->pd->parse() der Markdownparser angewiesen, den Inhalt in HTML zu übersetzen. Ist das nicht gewünscht, müssen Sie die auskommentierte Zeile aktivieren.


 13.02.2024    Kontakt@Oliver-Lohse.de    ein eigenes CMS entwickeln programmieren

PHP 8 und MySQL im perfekten Zusammenspiel   -  Dynamische Webseiten mit PHP und MySQL programmieren. Alles, was Sie dafür wissen müssen, steht in diesem Buch. Profitieren Sie von einer praxisorientierten Einführung und lernen Sie alle neuen Sprachfeatures von PHP 8 kennen. Die Autoren Christian Wenz und Tobias Hauser sind erfahrene PHP-Programmierer und Datenbankspezialisten. Sie zeigen Ihnen, wie Sie MySQL und andere Datenbanksysteme effektiv einsetzen. Mit diesem Wissen machen Sie sich rundum fit für dynamische Websites.

Wir sind Mitglied im Amazon.Partnernet und können mit Affiliate-Links den Betrieb der Webseite etwas unterstützen, für Sie als Leser ist das natürlich vollkommen kostenlos.

Weitere passende Beiträge

Teil 9 Wie gehts weiter?

 php  ein eigenes CMS entwickeln programmieren


Wie gehts mit dem eigenen CMS weiter? Was kann verbessert werden und welche Ausbauoptionen gibt es noch?

Teil 8 Erster Start des eigenen CMS

 php  ein eigenes CMS entwickeln programmieren


Starten Sie das selbst entwickelte Content Management System im Browser.

Teil 7 Beiträge und Kategorien anlegen

 php  ein eigenes CMS entwickeln programmieren


Legen Sie mit Hilfe von Markdown einfach und effizient Beiträge an.

Teil 6 HTML-Templates

 php  ein eigenes CMS entwickeln programmieren


HTML-Templates stellen das Layout und Design Ihres Content Management Systems dar.

Teil 5 Die View (MVC)

 php  ein eigenes CMS entwickeln programmieren


Die View zeigt die Daten des CMS im Browser-Fenster des Lesers an.

Teil 3 Der Controller (MVC)

 php  ein eigenes CMS entwickeln programmieren


Der Controller übernimmt die Steuerung Ihres eigenen Content Management Systems, er steuert die Verarbeitung.

Teil 2 htaccess und index.php

 php  ein eigenes CMS entwickeln programmieren


Für das CMS sind die beiden Server-Dateien htaccess und index.php die Schaltzentralen des CMS.

Teil 1 Vorwort und Download

 php  ein eigenes CMS entwickeln programmieren


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

Impressum


CMSWorkbench.de ist eine reine Entwickler-Webseite und dient vorwiegend als Wissensspeicher für die Entwicklung von CMS

Datenschutz


Die Webseite verwendet keinerlei Tracking- oder Speicher-Mechanismen, die Rückschlüsse auf Ihre IP oder das Leseverhalten zulassen

Affiliate


Wir sind Mitglied im Amazon Partnernet und können mit Affiliate-Links (* den Betrieb der Seite etwas unterstützen, für Sie ist das natürlich kostenlos

Kontakt


Sie können mit uns über eMail Kontakt aufnehmen, schreiben Sie an Kontakt@Oliver-Lohse.de