Thread Frage zu Handling von Config - Einträge
(2 answers)
Opened by YAPD at 2019-06-06 19:59
Hallo Zusammen,
nach einem regen Austausch mit HAJ ( danke nochmal ), der mir riet, meine alte Idee zu verwerfen und mit Moose zu arbeiten, habe ich mir das Modul nun genauer angesehen. Natürlich habe ich noch einiges zu lernen aber ich habe bereits eine Verständnisfrage, bei der ihr mir vielleicht weiterhelfen könnt. :) Ich habe zur Zeit 3 Files : 1. Installer.pl -> Grunddatei zum Starten der Anwendung Code: (dl
)
1 use Moose; Hier lädt er das Config - Modul & stellt die Ergebnisse als Hash zur Verfügung, auf die ich mit Code: (dl
)
$Config{ 'Werte des Hashs aus der Config' } ___________________________________________________________________________________________ 2. Die Config.pm Code: (dl
)
1 package Kernel::Config; Die Variable "Home" im Hash "%Config_Werte" ist äußerst wichtig, da sie den Basispfad für die ganze Anwendung angibt, sie muss anpassbar sein und wird überall verwendet, bzw. soll verwendet werden. Dies ist auch der einzige Wert, der wirklich in der Config.pm steht, alle anderen Config - Einträge stehen in der Datei "Defaults.pm", die ich mit Code: (dl
)
my $Defaults_Handler = Kernel::Config::Defaults -> new( ) ; initialisiere. Dann lade ich alle Config - Einträge mit : Code: (dl
)
$Defaults_Referenz = $Defaults_Handler -> Load_Defaults( ); Ich dereferenziere noch den Hash und gebe die Ergebnise als Hash zurück : ___________________________________________________________________________________________ 3. Die Defaults.pm Code: (dl
)
1 package Kernel::Config::Defaults; Hier komme alle Config - Einträge rein, ungefähr 200 oder mehr, die ich wie beschrieben aufrufen kann. ___________________________________________________________________________________________ DAS PROBLEM Ich hatte vorher eine Config - Datei, in der die Config - Einträge in folgendem Format standen : Code: (dl
)
1 $Self -> { Database } = 'Bezeichnung der DB'; anstatt akuell als Hash : Code: (dl
)
my %DB_Connection = ( DB_Handle => 'Microsoft SQL Server' ); Und bei Prüfung des Verzeichnis für das Verzeichnis "C:/Scripts/Aktuell/Kernel/Config/Files" wurde anstatt Code: (dl
)
-e "C:/Scripts/Aktuell/Kernel/Config/Files/" Code: (dl
)
-e "$Self->{Home}/Kernel/Config/Files/" Dies war so weil in der alten Config.pm die Variable "$Self->{Home}" auch so definiert war, anstatt aktuell als Hash. DIE FRAGE Ich möchte nun, dass : 1. ihr mir grundsätzlich sagt, ob es sinnvoll ist, es wieder auf diese Art zu handlen, oder ob ich es bei Hashes belassen soll wie es ist. Wenn ich wieder das Format "$Self->{Home}" verwendet soll, kriege ich das nicht bewerkstelligt mit Self und dem Hash. :/ 2. das Script wenn die Prüfung erfolgreich ist, also das o. g. Verzeichnis existiert, alle .PM Dateien in dem Ordner wiederum reinlädt und die Variablen übergibt ( entweder auch Hashes oder "$Self -> < Parameter >" Ich verwende das so, weil ich es nicht so schreiben konnte ( aufgrund Unwissen wahrscheinlich ), dass Moose in einem "has" Befehl z. B. 20 Variablen enthält. Ich würde es auch ungern als Sub - Routine oder ähnliches machen. Oder könnt ihr mir sagen, wie ich das bewerkstellige, eine Config - Datei mit sehr vielen Parametern als Moose has Objekt ??? Ich hoffe ihr könnt mir helfen und erwarte sehnsüchtig Eure Antwort. :) XD Viele Grüße YAPD Last edited: 2019-06-06 20:18:02 +0200 (CEST) Yet Another Perl Developer
|