Visualizzazione risultati 1 fino 1 di 1

Discussione: Script di test/debug. Cosa ne pensate?

  1. #1
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito Script di test/debug. Cosa ne pensate?

    Ciao, ho creato un file per testare script in modo trasparente su un sito, e volevo sapere la vostra opinione di esperti, e se qualcuno di voi lo farebbe in modo migliore


    Il mio file si chiama 'fork_flux.php', il cui codice è qui di seguito (il codice che vi mostro è scritto per funzionare su un forum phpBB).

    Quello che fa è semplice: devia il codice su un file secondario sostitutivo, che ha lo stesso nome del file originario più un suffisso. Ad es. se il file originario è "prova.php" il file secondario sarà "prova2.php".

    Il file sostitutivo viene eseguito solo da colui che lo debugga, mentre tutti gli altri non si accorgono di nulla (poiché continuano a eseguire il file originario). È quindi necessario un sistema di autenticazione (più o meno sicura) per poter sapere chi è autorizzato a vedere il file. L'accesso concorrente può essere implementato modificando opportunamente il file di debug.

    Il file sostitutivo può trovarsi nella stessa cartella del file originario o in un'altra cartella: lo trovo comodo nel caso che i file originari siano localizzati in cartelle diverse, quindi metterò tutti i file secondari nella stessa cartella e accederò solo a quella, anziché fare avanti e 'ndré. I file modificati possono anche venire inclusi in altri file senza che il risultato cambi.

    Per farlo funzionare, bisogna aggiungere una riga nei file originari (l'ho messa nello script) all'inizio del file, e mettere una graffa chiusa alla fine del file. Il controllo centralizzato è comodo perché, nel caso che si stiano modificando più file contemporaneamente, si può passare dalla modalità normale alla modalità di debug modificando solo un valore nel file di debug.


    Aggiungereste/modifichereste qualcosa? Lo fareste in altro modo?


    fork_flux.php :
    Codice PHP:
    <?php

    /************************************/
    /* Luffio © 2012 */
    /************************************/

    // Loads an alternative file. For testing purpose. Copy the following line to the very
    // beginning of the original file after the 'Start session management' section and add a '}' to
    // the very end of the file.
    // You can specify './' (current path) or '/' (home path) or '/TREEPATH/' (where TREEPATH
    // is like '/mydir1/mydir2/') as argument to 'define_flux'.

    // include_once($phpbb_root_path . 'fork_flux.' . $phpEx); if($new_flux=define_flux()) include($new_flux);else{

    if(!defined('FILENAME_SUFFIX'))
    define('FILENAME_SUFFIX', '2');

    if(isset(
    $user) && !defined('itsme'))
    if(
    $user->data['username'] == 'Luffio')
    define('itsme', 1);
    else
    define('itsme', 0);


    function
    define_flux($path = './', $suffix = ''){
    if(!
    itsme)return;

    $fork = 0 ; // fork flux here

    if(!$fork)return;
    if(!
    $suffix)$suffix = FILENAME_SUFFIX;
    global
    $phpbb_root_path, $phpEx;
    $trace = debug_backtrace();
    if(
    $path == './')
    return
    $phpbb_root_path . str_replace('\\', '/', substr($trace[0]['file'],57,-strlen($phpEx)-1)) . $suffix . ".$phpEx";
    else
    return
    $phpbb_root_path . substr($path,1) . substr($trace[0]['file'],strrpos($trace[0]['file'],'\\')+1,-strlen($phpEx)-1) . $suffix . ".$phpEx";

    }

    //}

    ?>
    Struttura del file originario :
    Codice PHP:
    <?php

    /*
    Gestione dell'autorizzazione,
    a meno che non sia già gestito
    nel file includente
    */

    include_once($phpbb_root_path . 'fork_flux.' . $phpEx); if($new_flux=define_flux()) include($new_flux);else{


    // script originario eseguito da tutti tranne da chi debugga


    }

    ?>
    Ultima modifica di Luffio : 01-12-2012 alle ore 00.32.46
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •