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

Umgebungen und Geheimnisse: EXP_ENV und settings/override

Das Gegenstück in Exponential zu APP_ENV, .env-Dateien, Rails-Credentials und Spring-Profilen – die Konstante EXP_ENV in config.env.php, Einstellungsvarianten pro Umgebung, was der Umgebungsname ändert, wo Geheimnisse…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/web-framework-developers/environments-and-secrets.md

On this page

This page is a translation. Read the English original

Umgebungen und Geheimnisse: EXP_ENV und settings/override

Diese Seite richtet sich an Entwickler, die Umgebungen mit APP_ENV umschalten, Geheimnisse in .env.local, in Rails-Credentials oder einem Vault aufbewahren und erwarten, dass sich dev, test und prod unterschiedlich verhalten. Exponential benennt die Umgebung einer Maschine mit einer einzigen Konstante, EXP_ENV, und erlaubt jeder Einstellungsdatei eine Variante dafür (Einstellungen pro Umgebung (EXP_ENV)).

Inhalt

  1. Die Umgebung benennen
  2. Einstellungsvarianten
  3. Was der Name ändert
  4. Geheimnisse
  5. Umgebungsvariablen
  6. Im Vergleich mit anderen Frameworks

Die Umgebung benennen

Kopieren Sie config.env.php.example im Stammverzeichnis der Installation nach config.env.php:

<?php
define( 'EXP_ENV', 'test' );

config.env.php wird von den Web-Einstiegspunkten und den Kommandozeilenskripten vor config.php gelesen, und die mitgelieferte .gitignore hält die Datei aus der Versionsverwaltung heraus. Ein Name besteht aus Kleinbuchstaben, Ziffern, - oder _, beginnt mit einem Buchstaben und hat höchstens 32 Zeichen; ein ungültiger Name wird so behandelt, als gäbe es keine Umgebung.

Einstellungsvarianten

Der Umgebungsname steht direkt nach .ini:

StandarddateiVariante für test
settings/site.inisettings/site.ini.test
settings/override/site.ini.append.phpsettings/override/site.ini.test.append.php
settings/siteaccess/admin/site.ini.append.phpsettings/siteaccess/admin/site.ini.test.append.php
extension/site_example/settings/site.ini.append.phpextension/site_example/settings/site.ini.test.append.php

Eine Variante wird in jeder Ebene direkt nach ihrer Standarddatei gelesen und überschreibt nur diese Ebene, sodass eine Siteaccess-Einstellung weiterhin gegen eine Basisvariante gewinnt. Jede Umgebung hat eigene INI-Cache-Dateien. Typische Varianten: der Mail-Transport (file außerhalb der Produktion), die Debug-Ausgabe, Hosts, die Solr-Adresse.

# settings/override/site.ini.test.append.php
<?php /*
[MailSettings]
Transport=file

[DebugSettings]
DebugOutput=enabled
*/ ?>

Was der Name ändert

EXP_ENVWirkung
dev, testindex.php zeigt PHP-Fehler im Browser an (display_errors eingeschaltet)
prod, jeder andere Name, keinerdisplay_errors bleibt so, wie php.ini es setzt

Templates lesen den Namen mit {exp_environment()}, PHP mit eZINI::environment() (der Name oder false). Die Administrationsdesigns admin4 und admin4l können die Umgebung als Plakette anzeigen (site.ini [AdminEnvironment] Level=auto). Anders als die dev-Umgebung von Symfony oder DEBUG in Django schaltet der Name von sich aus weder einen Profiler noch eine Debug-Toolbar ein: Diese schalten Sie in der Variantendatei der Umgebung ein.

Geheimnisse

GeheimnisWo
Datenbankpasswortsettings/override/site.ini.append.php der Installation
API-Schlüssel Ihrer Anwendungsettings/override/<yourfile>.ini.append.php, Modus 0640
Geheimnis für Formular-Tokensite.ini [HTMLForms] Secret in settings/override/

Niemals im Repository Ihrer Erweiterung, in einer .ini-Datei, die der Webserver ausliefern könnte, in Templates, Job-Nutzdaten, Logs, URLs oder Commit-Nachrichten. Liefern Sie jeden Schlüssel als leeren Wert mit einem Kommentar in der INI-Datei Ihrer Erweiterung aus und brechen Sie mit einer klaren Meldung ab, wenn er leer ist (Umgebungseinstellungen und Geheimnisse).

$key = eZINI::instance( 'expdemo.ini' )->variable( 'ArchiveSettings', 'ApiKey' );
if ( $key === '' )
    throw new RuntimeException( 'expdemo.ini [ArchiveSettings] ApiKey is not set; put it in settings/override/expdemo.ini.append.php' );

Umgebungsvariablen

Einstellungen werden nicht aus Umgebungsvariablen gelesen, wie es %env(...)%, env() oder os.environ tun. Einige Umgebungsvariablen gibt es für bestimmte Zwecke, zum Beispiel EXP_DEMO_MODE=1 für öffentliche Demos (Umgebungsvariablen). Wenn Ihre Plattform Geheimnisse als Umgebungsvariablen einspeist, lesen Sie sie in Ihrem eigenen Code mit getenv() und dokumentieren Sie das, oder lassen Sie Ihr Deployment sie in settings/override/ schreiben.

Im Vergleich mit anderen Frameworks

FrameworkUmgebungGeheimnisseExponential
SymfonyAPP_ENV, when@env.env.local, Secrets-VaultEXP_ENV, Varianten; settings/override/
LaravelAPP_ENV.envdasselbe
DjangoEinstellungsmodule, DJANGO_SETTINGS_MODULEUmgebung, Vaultsdasselbe
RailsRAILS_ENVverschlüsselte Credentialsdasselbe; keine eingebaute Verschlüsselung
SpringProfileProperty Sources, Vaultsdasselbe

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