Feature Wiki
Tabs
Modern Configuration File Format
1 Requirements
Ilias currently uses configuration files in INI-Format, which offers sections and variables. Nothing more. They are placed inside the webroot and protected by a php-code-snippet <?php die(); ?>.
More flexible approaches allow nested sections / arrays. The list of possible formats is long:
- yaml
- json
- xml
- php
- ...
Switching to a more flexible format with nesting would allow much better structure in configuration options.
I suggest yaml/json/xml for everything that is supposed to be changed by ILIAS. My favorite is YAML, because it is very clean and free of clutter.
Use-Cases:
1. One major use case is customizations which are often configured (and thus limited) by ini-settings. As a workaround we already used to nest a json-string into the ini-file - but that is not really intuitive and needs two levels of interpretation in ILIAS.
2. Another use case would be better abstraction of ILIAS initialization with Service Factories and/or a Dependency-Injection-Container: A Service-Factory could then just expect to receive its own configuration-array with arbitrary complex sub-structure.
--
Optional
- Move configuration files outside of directories generally accessible via web (e.g. /ilias.ini.php --> /config/ilias.yaml)
- have new custom config-files (global- and client-level), e.g.:
- ilias-custom.yaml (for manual editing)
- ilias-setup.yaml (generated by setup) - overwrites custom-settings
- clients/xxx/client-custom.yaml (for manual editing) - overwrites global-settings
- clients/xxx/client-setup.yaml (generated by setup) - overwrites custom-settings
YAML Example
--- !clarkevans.com/^invoice |
JSON Example
{ |
XML Example
<?xml version="1.0" encoding="UTF-8" ?> |
PHP Example
<?php |
2 Status
- Scheduled for: Not scheduled yet (will be set by Jour Fixe)
- Funding: Required / Interest in funding: (please indicate if you are interested to fund this feature)
- Maintainer: (will be set by Jour Fixe)
- Implementation of the feature is done by (company, developer)
- Contract settled: No | Fill in "Yes" if a contract is already settled and add Institution / Organisation in "Funding" row
- Tested by / status: (name, e-mail), (status information set after implementation)
3 Additional Information
Contact the following persons if you want to know more about this feature, its implementation or funding:
- Information about concept: (name, e-mail)
- Information about funding: (name, e-mail)
- Information about implementation: (name, e-mail)
4 Discussion
5 Implementation
...
Last edited: 22. Sep 2014, 20:57, Kiegel, Colin [kiegel]