2010-11-07 16 views
6

Finora ho circa 3 PHP inclusi nel mio sito.Va bene inserire molti PHP in un sito?

<?php include("includes/header.html"); ?> 

C'è qualche motivo per cui non dovrei aggiungere una tonnellata di questi?

+2

Puoi definire una "tonnellata"? –

+0

forse da cinque a dieci? – omnix

+0

include di solito significa più file per tenere traccia di ... se lo fai in modo logico funzionerà ... – Scott

risposta

8

Non proprio. Sono usati abbastanza spesso e liberamente - sebbene il più delle volte, per includere altri file PHP. Questi file PHP spesso ne includono altri, quindi non c'è davvero nessuna preoccupazione.

A proposito, se si utilizza questa tecnica per includere altri file PHP (ad esempio i file di libreria con funzioni che si sta utilizzando), è una buona idea di utilizzare require_once (c'è anche include_once, così come semplice require); require causerà un errore se il suo argomento non può essere trovato e non continuerà a provare a eseguire il rendering della pagina. require_once (e include_once) non includerà lo stesso file più di una volta, anche se si chiama require_once (o include_once) da luoghi diversi.

+0

Ok, grazie! – omnix

1

C'è un vantaggio nella scrittura di codice orientato agli oggetti e l'aggiornamento a PHP 5: è possibile evitare una "tonnellata di include" utilizzando class autoloading.

6

ho il sospetto che si sta facendo qualcosa di simile:

<?php 
    include("session_and_headers.php"); 
    include("top_nav.html") 
    include("right_sidebar.html"); 
?> 

... actual content generation code ... 

<?php 
    include("footer.html"); 
    include("js_loader.php"); 
?> 

Non c'è nulla di intrinsecamente sbagliato in questo per i siti statici semplici, o situazioni in cui gli utenti avranno soltanto diverse viste distinte.

Ma, cosa succede se si desidera utilizzare una barra laterale leggermente diversa solo su determinati tipi di pagine? Dove metti la logica per determinarlo così è ovvio per la prossima persona che eredita il tuo codice?

Se si entra in questo tipo di complessità, si consiglia di andare con l'approccio MVC (anche se si utilizzano principalmente gli aspetti vista/controller di esso).

Se stai facendo un sito in nn page in PHP che ha solo bisogno di condividere elementi comuni, non c'è motivo di evitare semplicemente di includere i file secondo necessità.

Non guardare a questo così tanto come è un male per PHP, guarda più come è difficile da mantenere?

+0

Lo sto usando solo perché non voglio copiare tutto lo stesso codice HTML su ogni pagina. – omnix

+0

@omnix - si dovrebbe andare bene allora. –

0

L'unico svantaggio sono le prestazioni: ciascuna include i costi per le chiamate di sistema. Con 3 o 10 è tutto un piccolo cambiamento a meno che il traffico non sia enorme, ma circa 100 potrebbe essere un problema. La soluzione consiste nell'utilizzare una cache bytecode (come apc) e impostare la variabile realpath_cache_size su un valore superiore (il valore predefinito è sufficiente per circa 100-200 file, a seconda delle lunghezze del percorso). A parte questo, non è un gran problema.

Problemi correlati