Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    217

    utilizzare dirname(__FILE__) per gli include

    ciao, aprendo il codice di joomla ho visto che tra le prime istruzioni dell' index, viene definito tramite una funzione simile
    codice:
    define('BASEDIR', dirname(__FILE__) );
    il percorso base di Joomla, per poi riutilizzarla per altri include.

    Per includere altri file nel codice viene poi utilizzato un codice simile

    codice:
    include(BASEDIR.DS."nome_cartella".DS."nome_file");
    dove BASEDIR è la cartella di installazione di joomla e DS il DIRECTORY_SEPARATOR.


    Secondo voi, è una buona pratica ? Il fatto che ci sia dirname(__FILE__) potrebbe, in caso di errori di inclusione con output non gestito, visualizzare su schermo il percorso dei file, quindi anche una parte della struttura del sito, giusto ? Questo potrebbe essere pericoloso?

  2. #2
    è una prassi consolidata da lungo tempo in php.

    d'altra parte usare dirname(__FILE__) oppure scrivere a manina "d:\www\miosito"
    non fa differenza, l'utilità di usare dirname(__FILE__) è che puoi spostare o installare la root del tuo sito/applicativo senza dover cambiare alcuna linea di codice per quanto riguarda gli include


  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    217
    si infatti è più comodo di scrivere a mano "d:\www\miosito", perchè hai la portabilità, ma pensavo che questo potresti anche risolvere scrivendo dei percorsi relativi, tipo include(cartella1/cartella2/file), questa soluzione viene mai utilizzata ?

    così come si usa dirname(__FILE__), si può anche utilizzare dirname(__DIR__) per risalire di due directory, o ci sono motivi per cui è meglio evitare ?

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.