Techstack¶
Backend¶
Wir nutzen PHP als Sprache für unsere Backend implementierungen
Pimcore¶
Webseite / Dokumentation / Github
Pimcore - Die Zukunft des Data & Experience Management
Pimcore ist die führende Open-Source-Plattform für die Verwaltung digitaler Daten und Kundenerfahrungen. Sie bietet einen vollständig integrierten Software-Stack für PIM, MDM, CDP, DAM, DXP/CMS & Digital Commerce.
Als Plattform bietet Pimcore eine solide Grundlage mit generischer Funktionalität für alle Arten von Webanwendungen und ermöglicht so eine schnelle Anwendungsentwicklung und den Aufbau von Kundenlösungen in kürzester Zeit.
Sein API-basierter Ansatz macht es einfach, mit Pimcore zu entwickeln, erlaubt die Integration in jede IT-Infrastruktur und macht es leicht erweiterbar. Auch die headless Ausführung von Pimcore ist möglich.
Pimcore wurde für Entwickler entwickelt und soll diese in die Lage versetzen, auf einfache Weise großartige digitale Erlebnisse zu schaffen. Folglich ist Pimcore KEIN 'out-of-the-box' Softwareprodukt wie Wordpress, Magento, Akeneo, WooCommerce, Shopify und andere. Sie brauchen einen Entwickler, um loszulegen.
Pimcore dient als CMS Basis für unsere Webseiten.
Es bietet als CMS die Grundlage zum anlegen und verwalten von Inhaltsseiten sowie ein Interface zum modellieren von Datenobjekten zur Datenhaltung.
Wir nutzen es aufgrund:
- der soliden Symfony Basis
- des Onpage editors für Inhaltsseiten
- der einfachen modellierung von Datenstrukturen und Abhängigkeiten
- des Entwickler Fokus, der Anbindungen und Erweiterungen zulässt
Symfony¶
Webseite / Dokumentation / Github
Pimcore nutzt als Basis für seine Features Symfony. Viele der Funktionen und internen Aufrufe können daher direkt in der Symfony Dokumentation nachgelesen werden.
Außerdem werden eigene Entwicklungen wie Routen, Darstellungen und Services auf der Grundlage von Symfony entwickelt um Pimcore zu erweitern.
Daher ist das knowhow mit Symfony elementar wichtig für die Entwicklung von Pimcore Projekten
Frontend¶
Unser Frontend Setup basiert auf Nodejs mit Webpack als Bundler
Webpack Encore¶
Webpack Encore ist das Frontend Paket von Symfony. Auf Webpack Basis dient es dazu, assets wie Javascript, CSS und co. zu bündeln und zu optimieren.
Wir nutzen es um alle weiteren Frontend Tools mittels Webpack Konfiguration zu vereinen.
Tailwindcss¶
Tailwindcss ist ein sogenanntes utility-first CSS Framework. Es besteht aus vielen modularen Klassen, die zusammen ein komplexes Layout abbilden können.
Wir nutzen es als Basis für unsere Styleguide Grundlage.
Über die Tailwind Konfiguration können wir Schriftarten, Farben und Abstände definieren und Projektweit nutzen.
Außerdem ist der Workflow zum Umsetzen von Layouts ohne das ständige hin und her zwischen CSS und HTML sehr angenehm.
Stimulus / Turbojs¶
Stimulus bietet eine Grundlage zum implementieren und verknüpfung von Javascript Funktionen mit dem HTML. Außerdem lassen sich Funktionen leicht zusammensetzen und wiederverwenden. Es integriert sich in die Nutzung von Turbojs
Mit Turbojs werden interkative Funktionen und Darstellungen umgesetzt. Es ist eine alternative zu den vielen auf Javascript basierenden SSR Systemen.
Durch die Kombination von Stimulus und Turbojs lassen sich Funktionen wie "mehr laden", Chats, Filter umsetzen.
Datenbank¶
MariaDB¶
MariaDB ist der Standard Datenbankserver auf unserem Plesk Produktivsystem und wird als Datenbank für Pimcore genutzt.
Hosting / DevOps¶
Server / Plesk¶
Als Hoster nutzen wir ein managed plesk vom Anbieter Powernetz.
Wir haben mehrere Server mit unterschiedlichen Zwecken:
- D305: Für ältere laufende Projekt und (leider) Contenido
- D298: Für unsere Webseite und Online Auktionen
- D299: Für neue auf Pimcore basierende Webseiten
Die Verwaltung der Domains und Serverdaten wird mittels Plesk Interface gemacht.
Gitlab¶
Für die Versionierung unserer Projekte und Tools nutzen wir private Gitlab Repositories.
Für einige interne Tools nutzen wir das ci/cd von Gitlab.
Visual Code¶
Wird aktuell von allen Entwicklern als IDE genutzt.
Bei der Entwicklung von Projekten nutzen wir das Devcontainer Feature von Visual Code.