Was hat Zikula mit Symfony und Doctrine zu tun?

in  Basics , , ,

Was hat Zikula mit Symfony und Doctrine zu tun?

In diesem Beitrag wird einmal grundlegend erklärt, wobei es sich um Zikula, Symfony und Doctrine handelt und wie diese Dinge zusammenspielen. Falls jemand diese Technologien nicht kennt, hilft dies vielleicht insbesondere beim Einstieg, sich unter der Masse von Begriffen zu orientieren.

Zikula

Zikula ist ein Application Framework und dient somit als „Rahmen“ für beliebige Webanwendungen. Die wichtigste allgemeine Anlaufstelle für Zikula ist https://ziku.la/.

Seinen Ursprung hat Zikula in dem Vorgängerprojekt „PostNuke“, welches in den 90er Jahren sehr populär war und weltweit häufig verwendet wurde. Im Jahre 2008 wurde das Projekt in Zikula umbenannt.

Der Name „Zikula“ ist angelehnt an mehrere Zulu-Worte, die übersetzt „schnell“ und „einfach“ bedeuten. Das System legt primär Wert auf die Qualitätskriterien Wartbarkeit, Sicherheit und Anpassbarkeit.

Konzeptionell werden verschiedene Funktionen in Zikula durch unterschiedliche „Module“ abgebildet. Typische Module sind beispielsweise eine Inhaltsverwaltung, ein Newsbereich oder auch ein Diskussions­forum. Durch weitere Funktionalitäten können mehrere Module miteinander interagieren.

Ein Modul hat typischerweise einen mehr oder weniger allgemeinen Charakter, damit es auf unterschied­lichen Websites wiederverwendet werden kann.

Individuelle Anforderungen realisiert Guite durch Modellierung eigener Module mit Hilfe von Module­Studio. Aus einem Modell wird anschließend der Quellcode für ein proto­typisches Modul generiert. Dieses wird meistens mittels manueller Anpassungen erweitert.

Das Layout einer Seite wird in Zikula mit einem sogenannten „Theme“ realisiert.

Symfony

Unter Zikula arbeitet wiederum ein „Framework für Frameworks“ namens Symfony, welches sich in den letzten Jahren zum De-Facto Standard für PHP-basierte Softwa­relösungen etabliert hat.

Erweiterungen für Symfony werden „Bundles“ genannt, von denen eine immens große Anzahl zur Verfü­gung steht. Wie in allen großen Ökosystemen konzentriert man sich aber in der Regel auf eine Auswahl der bekannten und aktiv gepflegten Bundles, um die Entwicklung dauerhaft überblicken und verfolgen zu können.

Die meisten bekannten PHP-Projekte (u. a. Drupal, Joomla, phpBB, Magento, Piwik, … ) benutzen entweder Symfony oder arbeiten aktuell daran, es zukünftig zu verwenden. Eine Auswahl von Projekten, die mit Symfony arbeiten, befindet sich unter https://symfony.com/projects

Mit dieser Tendenz konvergieren die unterschiedlichen Frameworks in der PHP-Landschaft, was die Quali­tätssicherung vereinfacht und es den Entwicklern mittelfristig deutlich erleichtert, sich in anderen Sys­temen zurecht zu finden.

Doctrine

Zur Interaktion mit Datenbanken verwenden Zikula und Symfony die Bibliothek Doctrine. Hierbei handelt es sich um einen Mechanismus für „objektrelationales Mapping“ (ORM), der die Umsetzung von Datenstrukturen auf Programmebene und Datenbankebene und zurück erleichtert.

Statt manueller SQL-Befehle werden datenbankunabhängige Objektabfragen mit DQL (Doctrine Query Language) erzeugt, die sich nicht nur vorteilig auf die Sicherheit auswirken, sondern insbesondere portabel sind. Zu den unterstützten relationalen Datenbanksystemen zählen unter anderem MySQL, PostgreSQL, SQLite, Oracle, MS SQL und Sybase. Durch das Unterprojekt „MongoDB ODM“ wird auch die Nutzung der dokumentenorientierten Datenbank „MongoDB“ ermöglicht.