Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Konfiguration: INI-Dateien statt YAML, PHP-Arrays oder .env

Wie Exponential konfiguriert wird, für Entwickler, die config/*.yaml, config/*.php, settings.py oder application.properties gewohnt sind – INI-Dateien in Ebenen (Standardwerte, Erweiterungen, Siteaccesses, Override)…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/web-framework-developers/configuration-ini-files.md

On this page

This page is a translation. Read the English original

Konfiguration: INI-Dateien statt YAML, PHP-Arrays oder .env

Diese Seite richtet sich an Entwickler, die eine Anwendung in YAML, PHP-Arrays, settings.py oder application.properties konfigurieren. Die gesamte Konfiguration von Exponential liegt in INI-Dateien, die über eZINI (lib/ezutils/classes/ezini.php) gelesen werden. Die Standardwerte werden in settings/<file>.ini ausgeliefert; alles, was Sie ändern, liegt in Ebenen darüber, sodass Updates Ihre Einstellungen nie überschreiben.

Inhalt

  1. Dateien und Blöcke
  2. Die Ebenen und ihre Reihenfolge
  3. Arrays
  4. Einstellungen lesen
  5. Einstellungen ändern
  6. Caches
  7. Im Vergleich mit anderen Frameworks

Dateien und Blöcke

Jedes Thema hat eine Datei (site.ini, content.ini, module.ini, design.ini, override.ini, rest.ini, velocity.ini ...), jede Datei hat Blöcke ([DatabaseSettings]), jeder Block hat Schlüssel. Dateien, die Sie in einer Ebene hinzufügen, heißen <file>.ini.append.php und schließen ihren Inhalt in einen PHP-Kommentar ein, sodass der Webserver sie nie ausliefert:

<?php /* #?ini charset="utf-8"?
[DebugSettings]
DebugOutput=enabled
*/ ?>

Ihre Erweiterung kann auch eine eigene Datei mitbringen, extension/expdemo/settings/expdemo.ini, in der jeder Schlüssel dokumentiert ist (Einstellungen und INI-Dateien in Ihrer Anwendung).

Die Ebenen und ihre Reihenfolge

eZINI liest zuerst die Standarddatei, dann die Override-Verzeichnisse in dieser Reihenfolge, wobei eine spätere Datei gewinnt (Die INI-Einstellungskaskade):

ReihenfolgeGeltungsbereichVerzeichnisse
0Standardwertesettings/<file>.ini (bei einer eigenen Datei die settings/<file>.ini der Erweiterung)
1Siteaccess der Erweiterungextension/<ext>/settings/siteaccess/<siteaccess>/ und verwandte
2Siteaccesssettings/siteaccess/<siteaccess>/
3Erweiterungextension/<ext>/settings/ jeder aktiven Erweiterung
4Overridesettings/override/ der Installation

Beachten Sie die Reihenfolge: Das globale settings/ einer Erweiterung gewinnt gegen settings/siteaccess/<siteaccess>/, und settings/override/ gewinnt gegen alles. Ein Wert, der nur für einen Siteaccess gedacht ist, gehört deshalb in ein Siteaccess-Verzeichnis einer Erweiterung oder in settings/siteaccess/, nicht in die globalen Einstellungen einer Erweiterung. Die vollständige Referenz ist INI-Override-Verzeichnisse und Platzierungen. Ist EXP_ENV gesetzt, kann jede Datei zusätzlich eine Umgebungsvariante haben, die direkt nach ihr gelesen wird (Umgebungen und Geheimnisse).

Erweiterungen werden in site.ini [ExtensionSettings] ActiveExtensions[] (global) und ActiveAccessExtensions[] (pro Siteaccess) eingeschaltet; diese beiden lassen sich nicht aus einer Erweiterung heraus setzen.

Arrays

Schlüssel, die auf [] enden, sind Arrays und summieren sich über die Ebenen hinweg auf. Eine leere Zeile Key[] löscht, was vorher kam, sodass eine Ebene eine Liste ersetzen statt erweitern kann:

[RequestRuleSettings]
RuleList[]
RuleList[]=system_url_full_view_to_alias

Assoziative Einträge werden als Implementation[<class>]=<subclass> geschrieben.

Einstellungen lesen

$ini = eZINI::instance( 'expdemo.ini' );
$limit = $ini->hasVariable( 'ListSettings', 'DefaultLimit' )
    ? (int)$ini->variable( 'ListSettings', 'DefaultLimit' )
    : 10;
$classes = $ini->variable( 'ListSettings', 'ClassList' );   // an array

In Templates: ezini( 'ListSettings', 'DefaultLimit', 'expdemo.ini' ). Werte sind Zeichenketten; wandeln Sie sie um und geben Sie einen sicheren Standardwert an, wenn ein Schlüssel fehlen kann. Parsen Sie INI-Dateien nie selbst.

Einstellungen ändern

./console exp:ini get expdemo.ini/ListSettings/DefaultLimit
./console exp:ini set expdemo.ini/ListSettings/DefaultLimit 20 global
./console exp:ini where expdemo.ini/ListSettings/DefaultLimit site

exp:ini where listet jede Datei auf, die für einen Siteaccess einen Wert setzt, und beantwortet so in Sekunden die Frage, warum ein Wert nicht der ist, den Sie geschrieben haben (Einstellungen über die Kommandozeile ändern). Setup > Einstellungen zeigt Einstellungen im Browser an und bearbeitet sie.

Caches

Einstellungen werden gecacht. Nach einer Änderung: php bin/php/ezcache.php --clear-tag=ini (nicht --clear-id=ini, das den globalen INI-Cache verfehlt), und starten Sie die Velocity-Worker mit ./console exp:velocity deploy neu, denn die Worker behalten die Einstellungen, die sie geladen haben.

Im Vergleich mit anderen Frameworks

FrameworkKonfigurationExponential
Symfonyconfig/packages/*.yaml, when@prod, ParameterINI-Dateien; Umgebungsvarianten mit EXP_ENV
Laravelconfig/*.php, die env() lesenINI-Dateien; Geheimnisse in settings/override/
Djangosettings.py, aufgeteilte Einstellungsmoduledie Override-Ebene und die Siteaccess-Ebenen
Railsconfig/environments/*.rb, CredentialsVarianten über EXP_ENV; settings/override/
Springapplication.yml mit ProfilenVarianten pro Umgebung; Siteaccess-Ebenen pro Site

Es gibt keine Ausdruckssprache, keine Service-Parameter und keinen typisierten Konfigurationsbaum: Ein Schlüssel ist eine Zeichenkette oder ein Array von Zeichenketten.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x