Portal > Foren > PHP > PHP-Programmierung > Zugriff auf Konfiguration im verschachtelten Array
Antwort
 
Themen-Optionen
Alt 02.02.2007, 12:01 Nach oben    #1
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard Zugriff auf Konfiguration im verschachtelten Array

Hi,
ich will mir eine kleine Config-Klasse schreiben (übergangsweise), welche mir Zugriff auf ein Konfigurationsarray liefert, welches in einer separaten Datei (config.php) definiert wurde.

Ich brauche also erstmal nur Lesezugriff. Das soll alles auch nichts Großes sein, sondern mir nur die Möglichkeit bieten von globalen Konfigurationsangaben wegzukommen.

Das Array ist z.B. so aufgebaut
PHP-Code:
$config['paths']['userImages'] = IMG_HOST '/pictures/user/';
$config['paths']['templates']  = '_templates';

$config['entriesPerPage'] = 30
Jut, wie realisiere ich denn jetzt den Zugriff am besten?

Ich will halt via
PHP-Code:
$config->get('entriesPerPage'); 
auf die Daten zugreifen können. Problem ist nur .. wie sieht der Aufruf aus, wenn ich ein verschachteltes Array habe?

Vorschläge?
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2007, 12:06 Nach oben    #2
Christian Mühlroth
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard

Steht die Konfigurationsstruktur denn so fest, oder kannst du die Ändern?
Ich würde diese dann nämlich weitgehend dahin ändern, dass sie zumindest von den Array-Dimensionen her einheitlich ist. Sprich dass du wie in deinem Beispiel angegeben eben immer 2 Dimensionen hast. Eine, die Dir beschreibt, welche Konfigurationen darin sind (z.B. paths), und die nächste Dimension eben für die Eigenschaft (z.b. userImages). Das würde ich dann auch mit deinem Wert entriesPerPage machen.

Die Überdimension würde ich da halt z.B. "general" oder "news" legen (ich weiß jetzt nicht, für was du 30 Einträge pro Seite legen willst), dass das Ganze dann so aussieht:
PHP-Code:
$config['paths']['userImages'] = IMG_HOST '/pictures/user/';
$config['paths']['templates']  = '_templates';

$config['general']['entriesPerPage'] = 30;
// oder eben 
$config['news']['entriesPerPage'] = 30
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2007, 12:07 Nach oben    #3
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
Standard

Bei mir sieht das so aus:
PHP-Code:
$config->get('ModulX.entriesPerPage'); 
Eine Alternative wären einfach einzelne Parameter, die ann mit func_get_args() ausgelesen werden.

Basti
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2007, 12:09 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Hi,
@chr!s
und wie sähe dann dein Aufruf aus? Darum geht es mir.

@basti:
bei dir genau die andere Frage. Wie sieht bei dir das Konfigurationsarray aus?
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2007, 12:34 Nach oben    #5
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
Standard

Zitat:
Zitat von Ben Beitrag anzeigen
@basti:
bei dir genau die andere Frage. Wie sieht bei dir das Konfigurationsarray aus?
Na so, wie du es beschrieben hast. Nur, dass das Array auf mehrere Dateien verteilt ist - eine je Schlüssel in der ersten Dimension und dann bei Bedarf im Config-Objekt zusammengebaut wird.

Basti
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2007, 12:47 Nach oben    #6
Christian Mühlroth
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard

Zitat:
@chr!s
und wie sähe dann dein Aufruf aus? Darum geht es mir.
So wie das Basti z.B. schon gezeigt hat, finde ich das eine schöne Möglichkeit.
PHP-Code:
<?php
Config
::get('news.entriesPerPage');
?>
Das Array dazu kann dann z.B. so aussehn:
PHP-Code:
<?php
$aConfig
['news']['entriesPerPage']
?>
In der Methode config::get könntest du dann ja z.B. nach dem Punkt splitten (mittels explode(), preg_split() ist hier unnötig), und dann eben das Config-Array [$key1][$key2] zurückliefern.
Alternativ dazu natürlich noch Exceptions werfen, wenn der Config-Eintrag nicht existiert.
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Array in Bezug auf ein anderes sortieren... code5 PHP-Programmierung 2 15.05.2006 15:56
mit foreach schleife auf 4 fach verschachteltes Array zugreifen Doggi PHP-Programmierung 4 01.02.2006 15:45
dynamischer Zugriff auf statische Eigenschaft einer Klasse Ben PHP-Programmierung 10 15.11.2005 15:53
Zugriff auf Systemressourcen aus Applet Quakes Allgemeine Java-Programmierung 3 17.06.2005 22:49
Zugriff auf Dateien Im Netz CyberHoney Desktop-Applikationen und Grafik 7 22.09.2004 16:42


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:44 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44