PHP: DB-Config-Datei von ZF1 auslesen

edit | delete

Autor: Ralf v.d.Mark

eingetragen: Freitag, 25. Oktober 2019 um 14:18 Uhr (43/2019 Kalenderwoche)

geändert: Donnerstag, 26. März 2020 um 16:14 Uhr (13/2020 Kalenderwoche)

Keywords: config inifile parsen doctrine connection orm_default params autoload global.php

Kategorien: PHP-ZF, PHP,

Text:

Für eine native, eigenständige Anwendung die Zugangsdaten aus der
/config/autoload/global.php in ZF2/ZF3 laden.


Anleitung:
Inhalt aus Quellcode in der Datei "classzf1configauslesen.php" speichern
und wie folgt aufrufen:


/** START: DATENBANK INFORMATIONEN **/
require 'classzf1configauslesen.php';
$dbConnectParameters = classzf1configauslesen::getConfigArray('../../application/config/configRESSORT.ini');
//Zum Testen:
echo print_r($dbConnectParameters, true);

Quellcode:  

<?php
/**
 * Diese Datei enthält eine statischen Methode in einer Klasse,
 *      mit der man die ZF1-config auslesen kann.
 *
 * PHP version 7
 *
 * @name       class_zf1config_auslesen.php
 * @author     Ralf.vonderMark@BLE.de, BLE, Ref. 223 (Entwicklung)
 * @copyright  2019, BLE
 * @version    25.10.2019, GIT: Yes
 */

class class_zf1config_auslesen
{
    public $pathAndFilename2config = false;

    public function __construct()
    {
        $this->pathAndFilename2config;
    }//ENDE: public function __construct()

    /**
     * Gibt die ZF1-Config als Array zurück.
     *
     * @name       methode: getConfigArray()
     * @author     Ralf von der Mark (vdM), Ref. 223 (Entwicklung), BLE <Ralf.vonderMark@BLE.de>
     *
     * @param string $pathAndFilename2config
     *
     * @return array
     * @version    25.10.2019, GIT: Yes
     *
     */
    static public function getConfigArray($pathAndFilename2config)
    {
        if (!file_exists($pathAndFilename2config)) {
            return ['DateiNichtGefunden_546464' =>
                        'Error 546464: class_zf1config_auslesen::getConfigArray() hat die Datei nicht gefunden!'];
        }//ENDE: if (!empty(file_exists($pathAndFilename2config))
        $dbConfigZf1Arr = file($pathAndFilename2config);
        $dbConfigZf1Bereich = 'ERROR_46464';
        $dbConfigZf1 = [];
        foreach ($dbConfigZf1Arr as $zeile) {
            $zeile = trim($zeile);
            if (!empty($zeile)) {
                //Wenn getrimmte Zeile gefüllt, dann los...

                if (substr($zeile, 0, 1) == '[') {
                    $dbConfigZf1Bereich = str_replace('[', null,
                                                      str_replace(']', null, $zeile));
                } else {
                    $zeileArr = explode('=', $zeile);
                    if (!empty($zeileArr[1])) {
                        $dbConfigZf1[$dbConfigZf1Bereich][trim($zeileArr[0])] = str_replace('"', null,
                                                                                            str_replace('\'', null,
                                                                                                        trim($zeileArr[1])));
                    }//ENDE: if (!empty($zeileArr[1])
                }//ENDE: else ==> if (!empty($zeile)
            }//ENDE: if (!empty($zeile))
        }//ENDE: foreach ($dbConfigZf1Arr as $zeile)
        if (count($dbConfigZf1) > 0) {
            return $dbConfigZf1;
        } else {
            //Wenn obriges nicht zutrifft, dann ist ein Fehler aufgetreten
            return ['KeineWerte_56969' =>
                        'Error 56969: class_zf1config_auslesen::getConfigArray() hat keine Werte gefunden!'];
        }//ENDE: else ==> if (!empty())
    }//ENDE: public function methodennname()

}//ENDE: class


//Zum Testen:
//$dbConnectParameters = class_zf1config_auslesen::getConfigArray('../../application/config/_config_RESSORT.ini');
//echo '<pre>'.print_r($dbConnectParameters, true).'</pre>';