Struktur mit switch

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Struktur mit switch

    Guten Abend zusammen,

    ich bin gerade dabei ein kleines Interface für mein Gameserver zu basteln um diesen etwas kompfortabler steuern zu können (starten, stoppen und so Geschichten).
    Nun, da ich jetzt nicht der Programmierguru vor dem Herr bin, stellt sich mir jetzt die Frage wie ich die Sache mit den 2 geplanten Navigationen realisieren kann.
    Die Hauptnavigation ist soweit klar, die Frage ist=> wie am sinnvollsten die zweite Navigation im Contentbereich jeden Spiels dauerhaft zu includieren. (auf dem zweiten Bild sieht man wie ich das meine)

    Vorab muss ich dazu sagen, ich arbeite hierbei ohne Datenbankunterstützung, alles rein HTML, PHP & CSS - man muss ja klein anfangen

    Der Link aus der URL würde dann so auschauen: http://www.meineSeite.de/webinterfac...te=spiel1?sub=

    index.php für den content:
    PHP-Code:
    <?php
    // standard - content für die seite
    if (isset($_POST['action']) && $_POST['action'] == 'process') {
        require 
    'includes/process.php';
    } else {
        require 
    'includes/content.php';
    }
    // spiel1 - content & process
    if (isset($_POST['spiel1']) && $_POST['spiel1'] == 'process') {
        require 
    'includes/spiel1/process.php';
    }
    ?>
    content.php
    PHP-Code:
    <?php
    $seite 
    $_GET['seite'] ? $_GET['seite'] : $_POST['seite'];
        switch (
    $seite) {
            case 
    'config':
                
    showConfigForm();
                break;
    }

    function 
    showConfigForm() {
        require 
    'includes/config.php';
    ?>
        <div class="config">
            <form name="config" action="index.php" method="POST">
            <input type="hidden" name="action" value="process" />
            <input type="hidden" name="seite" value="saveconfig" />

            ...Optionsfelder...

            <button type="submit" name="process" class="button">speichern</button>
    <?php
    }
    ?>
    process.php
    PHP-Code:
    <?php
    $seite 
    $_POST['seite'] ? $_POST['seite'] : '';
    switch (
    $seite) {
        case 
    "saveconfig":
            
    processConfigSpeichern();
            break;
    }

    function 
    processConfigSpeichern() {
            ...
    Code zum Speichern...
    }
    ?>
    das funktioniert soweit und baut so die seite zusammen:


    Jetzt das Ganze noch einmal für die zweite Navigation bzw. für den Spielcontent:

    spiel1.content.php
    PHP-Code:
    <?php
    $sub 
    $_GET['sub'] ? $_GET['sub'] : $_POST['sub'];
        switch (
    $sub) {

            case 
    'config':
                
    showConfigForm();
                break;
    }

    function 
    showSpiel1Form() {
        include 
    'config.php';
    ?>
        <form name="spiel1" action="index.php?seite=spiel1" method="POST">
        <input type="hidden" name="spiel1" value="process" />
        <input type="hidden" name="sub" value="save" />

        ...Optionsfelder...

        <input type="submit" name="process" value="speichern" />
    <?php
    }
    ?>
    spiel1.process.php
    PHP-Code:
    <?php
    $sub 
    $_POST['sub'] ? $_POST['sub'] : '';
        switch (
    $sub) {
            case 
    'save':
                
    processSaveSpiel1();
                break;
    }

    function 
    processSaveSpiel1() {
        ... 
    Code speichern...
    }
    ?>


    Sollte dann so in etwa auschauen:


    So weit funktioniert das bisher ebenfalls, bin mir aber nicht wirklich sicher ob das so die Lösung ist, alles per switch zu realisieren. Was meint ihr zu meinem Ansatz, passt das so oder habt ihr bessere Ideen.

    Bin für jede Kritik dankbar
    Zuletzt geändert von cxxl; 20.05.2011, 19:46. Grund: vertippt

  • #2
    Hallo,

    es ist nicht so ganz leicht, das ad hoc nachzuvollziehen, aber wenn es für dich funktioniert, ist es ja erstmal okay, vom pragmatischen Standpunkt aus gesehen. Wenn du aber selbst nach Verbesserungen suchst, sei dir MVC (Model-View-Controller) empfohlen, mit dem du langfristig auch größere Projekte sauber umsetzen kannst, ohne Datenverwaltung, Anwendungslogik und Ausgabeformatierung vermischen zu müssen.

    Über MVC steht im Internet viel geschrieben, aber nicht alles ist wirklich die ultimative einzige Wahrheit. Daher solltest du alles als Anregung sehen und nicht als dogmatische Grundsätze. Der einzige Grundsatz sollte sein, dass das View niemals schreibend auf das Model zugreifen darf.

    Ansonsten ist es vielleicht noch hilfreich, zu wissen, dass MVC in typischen Webanwendungen aufgrund deren Natur (Anfrage-Antwort) etwas anders aussehen wird als in typischen Anwendungsprogrammen, die eher eventbasiert arbeiten.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Hallo,

      sehr schön das kannte ich noch gar nicht. Ich werde mich damit mal auseinandersetzen.
      Wenn es auch nur ein kleines Interface ist, so muss ich feststellen, daß die Anzahl der benötigten Dateien schon langsam astronomische Höhen erreicht. Dann macht MVC sicherlich Sinn um den Überblick zu wahren!

      Danke für die schnelle Antwort und ein schönes Wochenende

      Kommentar

      Lädt...
      X