Diese Dateien sind nützliche Tools für Add-On Entwickler, um gewisse Daten, wie Einstellungen zu speichern, ohne eine Datenbank-Tabelle anlegen zu müssen.

Sie sind gespeichert unter

[root]/application/config/generated_overrides/

Um ein solches File anzulegen, ist nur ein Befehl nötig.

\Config::save('name_des_files.1_array_level.eintrag', 'foo');

Das Config-File wurde unter

[root]/application/config/generated_overrides/name_des_files.php
gespeichert und sieht so aus:
<?php

/**
 * -----------------------------------------------------------------------------
 * Generated 2016-02-12T10:21:45+01:00
 *
 * DO NOT EDIT THIS FILE DIRECTLY
 *
 * @item      1_array_level.eintrag
 * @group     name_des_files
 * @namespace null
 * -----------------------------------------------------------------------------
 */
return array(
    '1_array_level' => array(
        'eintrag' => 'foo',
    ),
);

Wenn man nun weitere Daten speichern möchte, verwendet man wieder den gleichen Befehl:

\Config::save('name_des_files.1_array_level.2_array_level.noch_ein_eintrag', 'bar');

Das Resultat:

<?php

/**
 * -----------------------------------------------------------------------------
 * Generated 2016-02-12T10:27:42+01:00
 *
 * DO NOT EDIT THIS FILE DIRECTLY
 *
 * @item      1_array_level.2_array_level.noch_ein_eintrag
 * @group     name_des_files
 * @namespace null
 * -----------------------------------------------------------------------------
 */
return array(
    '1_array_level' => array(
        'eintrag' => 'foo',
        '2_array_level' => array(
            'noch_ein_eintrag' => 'bar',
        ),
    ),
);

Diese Konfigurationsdaten nützen jedoch nichts, wenn man sie nicht abrufen kann. Dies geschieht, wie man sich vorstellen kann, ganz ähnlich:

\Config::get('name_des_files.1_array_level.2_array_level.noch_ein_eintrag');

Das Konfiguartions-File gibt einen normalen PhP-Array zurück. Also kann man in diesem Array alle Datentypen speichern, die sonst auch erlaubt sind (ausser Objekte!). Hier nun eine komplexere Konfiguration:

$myArray = array(
    'foo' => 'one',
    'bar' => 'two',
    'an_int' => 12,
    'another_array' => array(
        'string',
        2.09845,
        99
    )
);
$anotherEntry = '<div id="foo">html geht auch</div>';
\Config::save('name_des_files.ein_array', $myArray);
\Config::save('name_des_files.ein_html_div', $anotherEntry);

Das Resultat:

<?php

/**
 * -----------------------------------------------------------------------------
 * Generated 2016-02-12T10:44:47+01:00
 *
 * DO NOT EDIT THIS FILE DIRECTLY
 *
 * @item      ein_array
 * @group     name_des_files
 * @namespace null
 * -----------------------------------------------------------------------------
 */
return array(
    'ein_html_div' => '<div id="foo">html geht auch</div>',
    'ein_array' => array(
        'foo' => 'one',
        'bar' => 'two',
        'an_int' => 12,
        'another_array' => array(
            'string',
            2.09845,
            99,
        ),
    ),
);

Um einen Eintrag zu löschen, verwendet man folgenden Befehl:

\Config::clear('name_des_files.ein_html_div');

Loading Conversation