Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2020
    Messaggi
    9

    Problema namespace e require

    Ciao a tutti,
    ho questa pagina che funge da controllore con questo codice (premetto che ho gia impostato con composer l'autoload delle classi, e funziona perfettamente):

    Codice PHP:
    use App\Models\Iscritti;
    require_once 
    APP_ROOT '/views/home.php'
    nella pagina home.php ho questo semplice codice (sto facendo dei test)

    codice HTML:
    <!DOCTYPE html><html lang="en">
    <head>    
    <meta charset="UTF-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    
    <meta name="viewport" content="width=device-width, initial-scale=1.0">   
     <title>Document</title>
    </head>
    
    <body>   
     sei nella home
        <?php    $text = new Iscritti;    ?>
    </body>
    
    </html>
    ma php mi restituisce il seguente errore:

    codice:
    sei nella home
    Fatal error: Uncaught Error: Class 'Iscritti' not found in 
    se invece copio e incollo il contenuto della pagina home sotto l'operatore use, quindi istanzio l'oggetto Iscritti NON nella pagina home richiamata dal require, funziona perfettamente.

    Sapete dirmi come mai?

  2. #2
    Non ho voglia di debuggare. Di sicuro così funziona (se l'autoload è corretto):

    Codice PHP:
    $text = new \App\Models\Iscritti

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2020
    Messaggi
    9
    Quote Originariamente inviata da filippo.toso Visualizza il messaggio
    Non ho voglia di debuggare. Di sicuro così funziona (se l'autoload è corretto):

    Codice PHP:
    $text = new \App\Models\Iscritti
    certo che cosi funziona, ma rendere inutile l'utilizzo dei namespace. Vorrei semplicemente capire perchè il require non passa il percorso del namespace, e se c'è un modo per farlo senza riscrivere il percorso

  4. #4
    L'unico modo che conosco per ottenere il risultato che desideri è usare https://www.php.net/class_alias

    Codice PHP:
    use App\Models\Iscritti;
    class_alias('App\Models\Iscritti''Iscritti');
    require_once 
    APP_ROOT '/views/home.php'

  5. #5
    Non vorrei dire ma credo manchi il namespace

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.