Development Guide
Basic Architecture
This diagram gives a broad overview on the ILIAS 3 architecture. ILIAS components are divided into services and modules. Each module provides an implementation for one or more resources that can be added to the ILIAS repository, e.g. a forum, a glossary or a chat. Services provide general functionalities used in the modules (or in other services), e.g. the role based access system or the news system.
Foundation Layer
The Foundation Layer contains all external systems and programs that ILIAS depends on, like PHP, MySQL and Apache. To keep it simple, some helper tools like Imagemagick or the zip program are omitted in the diagram.
ILIAS Application and GUI Layer
The main idea is that every component consists of a number of User Interface and Application classes.
Responsibilities of the GUI Layer
Processes input and generates output
Accesses $_GET and $_POST variables
Calls methods of the Application Layer
Generates output with Template Engine
Responsibilities of the Application Layer
Accesses database to insert, update and delete data
Calls other application or core classes to perform some tasks
The flow of control starts in a User Interface class that calls methods of the corresponding application class. The example on the right shows the control flow through the different layers. The szenario displays the title of an ILIAS group. The group GUI class ilObjGroupGUI
creates an instance of the application class ilObjGroup
. In its constructor the application class accesses the database and reads all the instance properties with the help of the query
method of class ilDBx
. After the processing of the constructor ilGroupGUI calls the getTitle()
method if ilObjGroup
to receive the group title and finally sets a template variable in the HTML output accordingly.
Sometimes more than one GUI and/or application class are involved in processing a user request. But method calls may only targeted to objects in the same or underlying layers.
Code Directory Structure
The architecture leads to the following main directory structure for the code. Please note that you will find additional files and folders in the ILIAS main directory. But the most core of ILIAS is within this structure:
Modules/ |
API Documentation
The current API documentation for modules and services can be found at: ILIAS API Documentation. It is offered for the trunk and former release branches.