Klassenkonzepte

Ein zentrales Merkmal des calladium CMS ist die Strukturierung von Information in Objekten. Objekte gehören zu Klassen und abhängig von der Klasse werden bestimmte Methoden unterstützt. Allerdings ist die Klassenhierarchie im CMS so flach, dass es niemals dazu kommt, dass Attribute vererbt werden. Vererbung wird nur zur Gruppierung und zum Aufbau eines Typsystems verwendet.

Bis Version 5 werden die CMS-Objekte nicht durch PHP-Objekte realisiert sondern durch PHP-Arrays. Der Grund dafür ist, dass am Anfang die PHP-Klassen als noch nicht ausgereift galten. Möglicherweise werden künftige Versionen auf PHP-Klassen basieren.

Eine Klasse ist in der Regel in der Klassenliste deklariert. Zur Deklaration gehört die Superklasse, die Attribute, der Titel, der Ort der Implementierung (wenn nötig) und weitere Eigenschaften.

Es gibt Klassen die keine (explizite) Deklaration haben.

Ad-Hoc-Klassen

Ad-Hoc-Klassen werden eingesetzt, wenn durch den Programmkontext klar ist, dass keine Deklaration nötig ist. Die Klasse kann also blind genutzt werden. Um bei den automatischen Quellcodeprüfungen auf diese Besonderheit hinzuweisen, werden sie per Konvention wie a_h_* benannt. Für so benannte Klassen wird also keine Deklaration erwartet.

Empty Related Classes

Eine häufig anzutreffende Klasse sind die Empty Related Classes, also Klassen ohne Attribute (empty), von denen nur (durch den Namen) bekannt gemacht wird, von welcher Klasse sie erben und wo ihre Implementierung steht. Der Implementierungsort wird durch die in Beziehung stehende (related) Klasse genannt (sie muss einen solchen Ort in der Deklaration haben).

Beispiel: Die Klasse offer:print_objed_tab erbt von print_objed_tab, hat keine Attribute und ist in der selben PHP-Datei implementiert wie die deklarierte Klasse offer.