Suche…


Installation der YAML-Erweiterung

YAML wird nicht mit einer Standard-PHP-Installation geliefert, sondern muss als PECL-Erweiterung installiert werden. Unter Linux / Unix kann es mit einem einfachen installiert werden

pecl install yaml

Beachten Sie, dass libyaml-dev Paket libyaml-dev auf dem System installiert sein muss, da das PECL-Paket lediglich ein Wrapper für libYAML-Aufrufe ist.

Die Installation auf Windows-Computern unterscheidet sich - Sie können entweder eine vorkompilierte DLL herunterladen oder aus Quellen erstellen.

Verwenden von YAML zum Speichern der Anwendungskonfiguration

YAML bietet eine Möglichkeit, strukturierte Daten zu speichern. Die Daten können ein einfacher Satz von Name-Wert-Paaren oder komplexe hierarchische Daten sein, wobei Werte sogar Arrays sein können.

Betrachten Sie die folgende YAML-Datei:

database:
    driver: mysql
    host: database.mydomain.com
    port: 3306
    db_name: sample_db
    user: myuser
    password: Passw0rd
debug: true
country: us

Sagen wir, es wird als config.yaml . Um diese Datei in PHP zu lesen, kann der folgende Code verwendet werden:

$config = yaml_parse_file('config.yaml');
print_r($config);

print_r erzeugt die folgende Ausgabe:

Array
(
    [database] => Array
        (
            [driver] => mysql
            [host] => database.mydomain.com
            [port] => 3306
            [db_name] => sample_db
            [user] => myuser
            [password] => Passw0rd
        )

    [debug] => 1
    [country] => us
)

Jetzt können Konfigurationsparameter verwendet werden, indem einfach Array-Elemente verwendet werden:

$dbConfig = $config['database'];

$connectString = $dbConfig['driver']
    . ":host={$dbConfig['host']}"
    . ":port={$dbConfig['port']}"
    . ":dbname={$dbConfig['db_name']}"
    . ":user={$dbConfig['user']}"
    . ":password={$dbConfig['password']}";
$dbConnection = new \PDO($connectString, $dbConfig['user'], $dbConfig['password']);


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow