Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di XSS
    Registrato dal
    Nov 2008
    Messaggi
    4

    AutoLoad PHP con caricamento Automatico classi PHP

    Salute a tutti.

    E' da oggi che sto impazzendo su un problema che non riesco a risolvere.


    Codice PHP:
    <?php 

    define
    (_LIBRARY_PATH'libraries/');

    class 
    loader
    {
        function 
    loader($path NULL
        { 
            if(
    $path == NULL
            {
                
    $path _LIBRARY_PATH;     
            }
            
    exec('ls '.$path.'*'$f); 
            foreach(
    $f as $mod
            {
                
    $module str_replace('.php'''str_replace($path.''''$mod)); 
                if(!
    is_object($module))         
                { 
                    if(require_once(
    $mod)) 
                    {    
                        
    $modulos[$module] = new $module
                        
    $module $modulos[$module]; 
                    } 
                    else 
                    { 
                        
    printf('problem'); 
                        return 
    false
                    } 
                } 
            } 
            return 
    true
        } 
    }

    $loader = new loader;
    $loader->loader(_LIBRARY_PATH);

    ?>
    Lo script in questione cerca nella directory _LIBRARY_PATH tutti i file php, nomeclasse.php, e cerca di caricarli ed istanziare la classe nomeclasse

    Tutto funziona, tranne l'attivazione effettiva della classe.

    Infatti se richiamo qualsiasi metodo delle classi caricate, PHP non le riconosce:

    Codice PHP:
    Fatal errorCall to a member function query() on a non-object in /framework/test.php on line 5 
    Deduco che, non venga istanziata la classe correttamente.

  2. #2
    se non venisse istanziata correttamente ti darebbe errore quando cerchi di istanziarla

  3. #3
    Utente di HTML.it L'avatar di XSS
    Registrato dal
    Nov 2008
    Messaggi
    4
    Si su questo hai ragione, ma il fatto che non riconosca l'oggetto ->query() come oggetto della classe database, mi fa venire il dubbio che la classe database, contenuta in /libraries/database.php non venga istanziata correttamente.

    Le classi vengono caricate correttamente, altrimenti darebbe errore sulla funzione require di PHP.

    Inoltre il path è corretto, ho già verificato con oppurtini debug.

  4. #4
    Originariamente inviato da XSS
    ma il fatto che non riconosca l'oggetto ->query() come oggetto della classe database, mi fa venire il dubbio che la classe database, contenuta in /libraries/database.php non venga istanziata correttamente.
    al massimo la classe database non avrà il metodo query
    la istanzi correttamente la classe database?

  5. #5
    Alcune note:

    - Perchè usare exec() se esiste glob etc. ?
    - Nel codice che hai postato, tutte le varianili hanno scope locale. Su che cosa esegui ->query()?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.