Newsgroup: it.comp.www.php
Titolo: organizzazione file progetto

Ho un dubbio riguardo l'organizzazione dei file
costituenti un progetto PHP. In un file ho bisogno
di importare un altro file contenente molte funzioni
di libreria, solo che a me serve importare sola una piccola
funzione nel file in oggetto, non tutto il malloppo.
Se importo il file di libreria, devo trascinarmi dietro
un malloppone, se invece copio e incollo la funzioncina
nel file che la richiede, allora perdo il beneficio
dell'avere la libreria apposita. C'ï¿œ un metodo alternativo
o migliore per uscire da questo impasse?
 
 

 o migliore per uscire da questo impasse?
 
Spezza il file di libreria in due, in uno metti la piccola funzione e 
nell'altro includi il primo con include_once().
Ora nel tuo codice puoi includere il primo file, e quindi solo la 
piccola funzione, o il secondo file e quindi tutto.
 
In alternativa passi ad un linguaggio con un meccanismo di import più 
flessibile (sì, sto pensando a Python).
 
-- 
Andrea
 

 flessibile (sÃ¬, sto pensando a Python).
 
Ma in tal caso andrei OT :-D
 
 

 flessibile (sì, sto pensando a Python).
 
<flame>
Python non ti salva dall'importare e compilare tutto il file, ahce per 
una sola funzione.
 
PHP da questo punto di vista è molto più flessibile.
 
Con PHP 5.6 (uscito l'altro ieri :P) puoi importare anche una singola 
funzione o costante, allo stesso modo di Python (ma comunque importi e 
compili tutto il file)
</flame>
 
Per ciccio: a meno che il tuo file non sia di 1 MB, importarlo tutto non 
è un problema. Probabilmente ti porterà via un centinaio di 
microsecondi. :P
 
Bye.

 microsecondi.
 
Secondo me era più una questione ordine mentale che di tempo di 
esecuzione, gli dava fastidio importare tutto senza necessità.
 
-- 
Andrea
 

 microsecondi. :P
 
Si, ma come Ãš stato detto nell'altra risposta, la mia era piÃ¹
una questione di ordine mentale che di tempo di esecuzione.
 
 
 

 esecuzione, gli dava fastidio importare tutto senza necessità.
 
L'unico modo, come hai detto tu, è di spezzettare le funzioni in file 
separati, e magari iniziare a usare namespace e/o classi per raggrupparle 
in modo logico.
 
D'altronde qualsiasi linguaggio usi, per trovare la funzione o la classe 
dentro un file, il file lo deve parsare. A quel punto tanto vale parsarlo 
tutto e amen. :)
 
Bye.

 normali e _once, che permettono di fare belle cose. :)
 
Non mi sembra un meccanismo particolarmente flessibile quello di 
{require|include}[_once], quali cose belle puoi fare?
Se non hai l'estensione opcache abilitata il file viene comunque 
compilato ogni volta ad ogni istanza di include|require.
 
-- 
Andrea
 

 compilato ogni volta ad ogni istanza di include|require.
 
Per esempio puoi usare require_once per le classi, e sfruttare include 
per un sistema di templating:
 
<ul class="news">
  <?php foreach ($news as $newsname): ?>
    <li>
      <?php include('tpl.' .$newsname. '.php'); ?>
    </li>
  <?php endforeach; ?>
</ul>
 
Ora qualcuno storcerà il naso: "hey, ma stai usando PHP per il 
templating!!".
 
Sì! :P
 
È veloce, potente, ben integrato, e con un po' di attenzione rimane 
pulito.
 
Bye.