MB: Config verschachtelt

Beitrag lesen

moin Community,

nach längerem tüfteln ist ein mögliches Problem aufgetaucht. Ich muss nämlich bestimmte Objekte, Arrays in eine Config schmeißen. Als beispiel nehme ich die Database konfiguration:

Ich könnte die Konfiguration in Strings ablegen, die Kategorie vorangestellt:

Config::set( 'DATABASE_DRIVER','mysql' );
Config::set( 'DATABASE_HOST', 'localhost' );
Config::set( 'DATABASE_DBNAME', 'mydb' );
Config::set( 'DATABASE_USER', 'root' );
Config::set( 'DATABASE_PASSWORD', '' );

ich kann das auch als array ablegen

Config::set( 'database', [
  'driver'  => 'mysql',
  'host'    => 'localhost',
  'dbname'  => 'mydb',
  'user'    => 'root',
  'password'=> '',
] );

oder in Strings

Config::set( [ 'database' ][ 'driver' ],   'mysql' );
Config::set( [ 'database' ][ 'host' ],     'localhost' );
Config::set( [ 'database' ][ 'dbname' ],   'mydb' );
Config::set( [ 'database' ][ 'user' ],     'root' );
Config::set( [ 'database' ][ 'password' ], '' );

oder eben in ein Objekt

Config::set( 'DATABASE', new \Type\Database(
  'mysql', 'localhost', 'mydb', 'root', '' 
) );

Wärend ich weiter programmieren würde, würden noch mehr Verschachtelungen auftauchen z.B. Message mit z.B. category -> subject -> message

dann würde ich das wie im Thread Konfiguration auslagern machen. Da hat man erstmal den ersten Eintrag category in meinem Beispiel wech, aber da sind Untereinträge die einem ein Array mit Subarrays aufzwingen.

ein einfaches define( 'KATEGORY_SUBKATEGORY_SUBJECT_MESSAGE', $something ) um dieses zu lösen finde ich nicht förderlich. Da passt mir schon die statischen Klassen Programmlogik intern besser. Aber da habe ich dieses besagte Problem 😕.

Ist das jedem Projekt selbst überlassen oder steckte eine Konvention hinter?

vlg MB