Antwort
 
Themen-Optionen Thema durchsuchen
Alt 03.05.2007, 21:31 Nach oben    #21
Christian Schuhmann
 
Benutzerbild von bobby
 
Registriert seit: 09.03.2007
Ort: Nürnberg
Beiträge: 66
Standard

Hi,

also ich hab meine Konfigurationsschnittstelle dann etwa so umgesetzt:

PHP-Code:
<?php
abstract class Config
{
    abstract protected function 
__construct();

    abstract public function 
load($filename);

    abstract public function 
get($key);

    public static function 
factory($class)
    {
        return new 
$class;
    }
}

class 
Config_PHP extends Config
{
    protected 
$configs;

    public function 
__construct()
    {
        
$this->configs = array();
    }

    public function 
load($filename)
    {
        
$config null;

        require_once(
$filename);

        
$this->config $config;
    }

    public function 
get($key)
    {
        return 
$this->config[$key];
    }
}
$config_php Config::factory("Config_PHP");
?>
Zitat:
1. Die Klasse Config/Image baut eine Instanz von Config_Csv, Image_Png etc. und behält diese als privates Objektattribut und gibt die Anfragen entsprechend weiter.
Das würde ich mit Vorsicht behandeln - das fügt deiner Anwendung nur unötige Komplexität hinzu. (wie xabbuh bereits erwähnt hat)

Der Vorschlag mit abstract bzw. interface ist für mich eine ganz passable Lösung, aber da gibt es bestimmt noch bessere Ansätze

bobby
bobby ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.05.2007, 23:08 Nach oben    #22
Christian W. Achatz
 
Benutzerbild von dr.e.
 
Registriert seit: 05.02.2007
Ort: München
Beiträge: 150
Standard

Hallo bobby,

> require_once($filename);
> $this->config = $config;

Wenn das alles ist, was du in deiner Konfigurations-Klasse tust, frage ich mich, warum die eine solche einsetzt. Das ist Overhead, den es nicht braucht. Viel wichtiger ist es meiner Meinung nach über Context-abhängige Konfigurationen und Konfigurationen für verschiedene Umfelder (Test/Live) nachzudenken und hierfür eine standarddisierte Schnittstelle für deine Applikations-Schichten zur Verfügung zustellen. Wie stellst du z.B. generisch sicher, dass ein Modul ABC in verschiedenen Webseiten oder Teilen von Webseiten eingebunden ist und dort jeweils eine dem Context entsprechende Konfiguration hat und laden kann ohne, dass sich der darüberliegende Service - z.B. ein DocumentController oder eine Business-Komponente - Gedanken um Context und Umgebung machen muss? Mir fehlen derartige Überlegungen völlig. Ein derartiges Beispiel habe ich für ini-Dateien unter http://christian.zierpflanzenberatun...=Configuration implementiert....
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> http://adventure-php-framework.org)!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.05.2007, 22:32 Nach oben    #23
Christian Schuhmann
 
Benutzerbild von bobby
 
Registriert seit: 09.03.2007
Ort: Nürnberg
Beiträge: 66
Standard

Zitat:
Zitat von dr.e. Beitrag anzeigen
Hallo bobby,

> require_once($filename);
> $this->config = $config;

Wenn das alles ist, was du in deiner Konfigurations-Klasse tust, frage ich mich, warum die eine solche einsetzt. Das ist Overhead, den es nicht braucht.
Nein das oben genannte Beispiel ist nur eine Veranschaulichung und entspricht nicht meiner Lösung - eine Klasse für eine "require_once" ist wirklich übertrieben.

Den Artikel werde ich mir mal anschauen. Danke

bobby
bobby ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen 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 Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

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 sind an
PingBacks sind an
RefBacks sind aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:54 Uhr.


Powered by vBulletin® Version 3.7.4 (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 45