Paralleles Testsystem auf Host

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

  • Paralleles Testsystem auf Host

    Hi,
    ich könnte euren Rat gut gebrauchen...

    Als Webentwickler (PHP4.3 MySQL Apache bei Webspace-Provider) habe ich bisher bei Projekten neben dem Produktivsystem ein paralleles Testsystem in einem gleichrangingen Ordner benutzt.
    Die Startseite leitet dabei ins Livesystem.

    So kann ich in Ruhe debuggen und danach die beiden Ordnernamen einfach austauschen, um die verbesserte Version live zu schalten. Da das Testsystem in einem gleichrangigen Ordner steht, kann ich sicher sein, das alles funktionieren wird.

    Nervig ist dabei die resultiernde URL mit dem public-Ordner
    www.domain.de/public/...

    Gibt es dafür eine Lösung?
    Klasse wäre etwas Suma-freundliches.

  • #2
    Mir dient der Hostname als Erkennungsmerkmal für Entwicklungs- oder Liveumgebung. Bei dir könnte es der Verzeichnisname sein.

    So sieht das bei mir ungefähr aus, je nach Hostnamen setze ich error_reporting, debugging und meistens noch viel mehr projektspezifische Kleinigkeiten wie Pfadkonstanten und Kompatibiliätskram.
    PHP-Code:
    <?php

    // auto-switch by server name
    switch ($_SERVER['SERVER_NAME']) {

        
    // usually the machine for developing and testing
        
    case 'localhost':

            
    // set error reporting
            
    error_reporting(E_ALL E_STRICT);

            
    // print execution time on exit
            
    define('SCRIPT_STARTTIME'microtime());
            function 
    stopwatch() {
                global 
    $debug_message;
                
    debug('execution time: '.(microtime() - SCRIPT_STARTTIME));
                echo 
    $debug_message.'</pre>';
            }
            
    register_shutdown_function('stopwatch');

            function 
    debug($var$file ''$line '') {
                global 
    $debug_message;
                if (empty(
    $debug_message)) {
                    
    $debug_message '<pre style="font-size:8pt; font-face:Courier;">'
                        
    .'<<< DEBUGGING INFORMATION >>>';
                }
                
    $debug_message .= "\n";
                if (!empty(
    $file)) {
                    
    $debug_message .= "FILE: $file\nLINE: $line\n";
                }
                if (
    is_array($var)) {
                    
    ob_start();
                    
    print_r($var);
                    
    $out ob_get_contents();
                    
    ob_end_clean();
                    
    $debug_message .= $out;
                } else {
                    
    $debug_message .= $var;
                }
            }

            break;

        default:

            if (!
    defined('DEBUG')) {
                
    define('DEBUG'false);
            }

            
    // set error reporting
            
    error_reporting(E_USER_ERROR E_USER_WARNING E_USER_NOTICE);
            
            
    // dummy function, no debug output
            
    function debug($string$file ''$line '') {
            }

            break;
    }
    ?>

    Kommentar


    • #3
      Deine Lösung hatte ich auch mal gehabt - bis sich im Liveeinsatz herausstellte, dass die Bedinungen auf beim Hoster andere waren, als an meinem Arbeitsplatz. Bei mir liefs, im Netz nicht :-(

      Deshalb entwickle ich seither in der Produktivumgebung.
      Und da fiel mir erst mal nichts besseres ein, als die zwei Ordner.
      Nun suche ich eine Lösung um die Ordnernamen nicht mehr in der URL zu haben.

      Oder gibt es eine Möglichkeit dieselben Bedingungen die live herrschen GARANTIERT auf die Testumgebung anzuwenden?

      Kommentar


      • #4
        Original geschrieben von mife
        ... bis sich im Liveeinsatz herausstellte, dass die Bedinungen auf beim Hoster andere waren, als an meinem Arbeitsplatz. Bei mir liefs, im Netz nicht :-(
        Das solltest du allerdings vor der Liveschaltung merken.

        Nun suche ich eine Lösung um die Ordnernamen nicht mehr in der URL zu haben.
        Irgendwas muß sich aber unterscheiden - sonst wären es nicht zwei Dinge, sondern eins.

        Oder gibt es eine Möglichkeit dieselben Bedingungen die live herrschen GARANTIERT auf die Testumgebung anzuwenden?
        Theoretisch schon, aber praktisch ist es schwer und auch gar nicht nötig. Einfach die Unterschiede beider Systeme an zentraler Stelle ausgleichen; fehlende PHP-Funktionen nachbauen, Pfadkonstanten setzen, auf unterschiedliche Konfiguration achten (register_globals, magic_quotes, ...). Diese zentrale Stelle ist bei mir obiges Switch. Damit es sich nicht so aufbläht, include ich nach dem Hostnamen benannte Dateien, in denen genau das stattfindet. Vor dem Switch noch eine Datei mit allgemeinen Kompat-Geschichten. Klebeband, rote Schleife, Weihnachtspaket!

        Kommentar

        Lädt...
        X