Zum Inhalt

Architektur Contentfly CMS

Architektur

BACKEND

Die Backend-Schicht des Contentfly CMS basiert auf PHP und MySQL und agiert als Headless CMS1.

Silex Microframework

Auf der untersten Ebene agiert das Silex Microframework und ist u.a. für Themen wie Routing, MVC und Dependency Injection zuständig.

Symfony Components und Twig Template Engine

Das Contentfly CMS nutzt Teile der Symfony Components, wie CONSOLE, HTTP KERNEL, HTTP FOUNDATION oder ROUTING.

  • Symfony Components
  • symfony/console: v3.4.4
  • symfony/debug: v4.0.4
  • symfony/event-dispatcher: v3.4.4
  • symfony/http-foundation: v3.4.4
  • symfony/http-kernel: v3.4.4
  • symfony/polyfill-mbstring: v1.6.0
  • symfony/polyfill-php70: v1.6.0
  • symfony/routing: v3.4.4
  • symfony/translation: v4.0.4
  • symfony/validator: v4.0.4

Doctrine ORM

Für die Datenhaltung kommt das Doctrine ORM (Object-Relational Mapping) zum Einsatz.

  • Doctrine ORM Version 2.6
  • doctrine/orm: v2.6.0
  • doctrine/common: v2.8.1
  • doctrine/annotations: v1.6.0
  • doctrine/cache: v1.7.1
  • doctrine/collections : v1.5.0
  • doctrine/inflector: v1.3.0
  • doctrine/instantiator: 1.1.0
  • doctrine/lexer: v1.0.1

Contentfly CMS Core

Der Kern des Contentfly CMS befindet sich im Projektordner unter appcms/areanet/PIM. Der Ordnername PIM ist dabei noch historsisch geschuldet, denn das Contentfly CMS war urprünglich als individuelles Produkt-Informations-Management-System (kurz PIM) entwickelt worden. Das System erwies sich aber als so flexibel und ausbaufähig, dass es letztendlich die Grundlage für das Contentfly CMS diente. Und damit auch bewiesen ist, dass das Contentfly CMS auch als PIM eingesetzt werden kann.

Contentfly CMS API

Das eigentliche Herzstück, die Schnittstelle des Contentfly CMS. Das Contentfly CMS ist im Grunde als API-zentriertes System konzipiert. Neudeutsch wird diese Art der Software auch als Headless CMS benannt. Damit ist die Datenhaltung komplett unabhängig von der letztendlichen Ausgabe. Alle Daten und Inhalte sind über eine Schnittstelle, sowohl lesend als auch schreibend, ansprechbar.

Der zentrale Code für die API steckt in der Datei appcms/areanet/PIM/Controller/ApiController.php

Weitere Komponenten

Custom

Das Contentfly CMS kann über benutzerdefinierten Code flexibel angepasst und erweitert werden, ohne die Update-Fähigkeit des Contentfly CMS zu verlieren.

  • Event- und Hook-System zur Anpassung von Controller-Ausgaben (preDispatch/postDispatch)
  • Benutzerdefinierte API-Aufrufe-/Routen und -Ausgaben
  • Erweiterung von System-Entitäen (wie z.B. Benutzer oder Gruppen) durch Traits
  • Individuelle Frontend-Ausgaben über PHP und Twig-Templates (z.B. für eine Landing-Page)

USER INTERFACE (UI)

Das Contentfly CMS UI ist die Benutzeroberfläche für das Backend.

AngularJS

Als Grundlage für das Contentfly CMS UI dient AngularJS, JQuery und Bootstrap.

Contentfly CMS UI

Der Code des Contentfly CMS UI befindet sich im Ordner appcms/areanet/PIM-UI, dessen Unterordner assets dabei per Symlink im Ordner appcms/public/ui/default veröffentlicht ist. Das Contentfly CMS UI lädt nach dem Einloggen über die Schnittstelle /api/schema die Konfiguration des Systems und generiert dynamisch die Oberfläche, Listen und Formulare.

Custom

Ebenso wie das Backend, kann auch das Contentfly CMS UI individuell angepasst werden.