Funktionsweise
Am einfachsten erhält man wohl einen Einblick in die , wenn nachvollzieht, was passiert, wenn sie aufgerufen wird.
Das Initscript
Die wird immer über ein sogenanntes Initscript aufgerufen. Diese finden sich unter core/initscripts/, auch wenn ihr Ort prinzipiell nicht festgelegt ist.
Ein Initsript definiert ein paar Parameter und ruft die Datei core/main.inc.php auf.
Die main.inc.php
Hier wird zum einen das sog. SystemTheme geladen. SystemThemes befinden sich in core/systhemes/, wobei ihr Aufenthaltsort vom Initscript festgelegt wird und somit auch frei wählbar ist. Ein SystemTheme ist eine Ansammlung von Festlegungen, dei das "Aussehen" des Systems festlegen. Dazu gehören zB. Methoden, wie die Pfade oder Klassennamen zusammengebaut werden.
Weiterhin lädt die main.inc.php das sog. Presystem, dessen einziger Sinn und Zweck es ist, nach einigen Tests den Kernel zu laden.
Der Kernel
Am Ende der main.inc.php haben wir lso ein funktionsfähiges System und geben dem Kernel den Befehl, "loszulegen".
Der Kernel ist bereits austauschbar. Die Möglichkeiten, was die als Ergebnis haben kann, sind entsprechend vielfältig. Der Kernel ist einzig an Core_Kernel als Elternklasse gebunden. Darin werden die wichtigsten Funktionen eines Kernels festgelegt. Zum einen kann er in verschiedenen Stufen und Modi laufen. Zum anderen muss der Kernel die Services verwalten.
Ein Service ist über den Kernel global verfügbar und bietet gewisse Funktionen an. Ein Beispiel hierfür sind zB. Core_Services_Model, welches eine einheitliche Schnittstelle zu jeder Form von Quelle bietet.
Weiteres...
Bis jetzt gab es schon einige Möglichkeiten, den Programmablauf entscheidend zu beeinflussen. Welche Services nun geladne weren, entscheidet ausschließlich der Kernel. In der weiteren Dokumentation wird deshalb vom Standard-Kernel Core_Kernels_Heart ausgegangen. Er lädt in dieser Reihenfolge die Services Core_Services_Model, Core_Services_Load und Core_Service_View.