Architektur Contentfly CMS¶
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.