Newsgroup: it.comp.www.php
Titolo: dipendenze progetto immenso

Ciao a tutti, il mio problema � molto semplice da descrivere ma di difficile 
soluzione.
Ho ereditato un progetto PHP con migliaia di file, distribuiti su centinaia 
di cartelle.
Alcuni file sono sicuramente inutilizzati, avrei bisogno di uno strumento 
che mi desse la lista dei file realmente utilizzati, o inutilizzati, o 
qualcosa del genere.
Qualcuno � capitato in questa situazione ? e come avete risolto ?
Grazie.
merk. 


Forse con un ide, che ti analizza tutti i file e ricostruisce il
percorso a ritroso..
Bho prova con netbeans..
Se no mi verrebbe in mente un debugger/profiler php, mi sembra ci
fosse un modo di tracciare ogni funzione da che file proviene (e dopo
dovresti andare ad esclusione eliminando quelli inutili)..

Il 24/02/10 16.19, 
merk...@yahoo.it
 ha scritto:

Potresti fare uno script (anche in php) che con una regexp si legge da 
TUTTI i file gli include.
Poi li ordini alfabeticamente eliminando i doppioni e ecco che hai la 
lista dei file utilizzati....poi carichi in un array l'elenco di tutit i 
file nella root del progetto, e foreach file se il nome non sta 
nell'array lo elimini...
Se ti piace l'approccio e hai problemi chiedi :)

 nell'array lo elimini...
Non puo' funzionare. Un file tipo index.php che non � mai richiamato da 
un include verrebbe eliminato, cos� come tutti gli altri files che 
vengono richiamati direttamente da web ma non sono inclusi in altri file.
Con la tua soluzione ti tieni tutte le "librerie" ma butti via tutta la 
applicazione vera e propria.
ciao
Mauro

 qualcosa del genere.
Potresti mettere un filtro sulle operazioni di lettura file a livello 
del filesystem e giocare con il sito per un po' in questo modo hai 
un'idea statistica di quali file vengono aperti e, se sono organizzati 
gerarchicamente, di quali parti del sito hai attivato così hai un'idea 
di massima.

 qualcosa del genere.
Hm, se l'applicazione non ha un numero di entry point limitati (e se è
strutturata così ne dubito fortemente) non c'e' un modo "automatico"
di risolvere il problema perchè anche se un file non è riferito da
nessuna parte potrebbe sempre essere lì per essere chiamato tramite
URL diretta.
Come ti hanno suggerito, una sgrossata la puoi dare cercando nei
sorgenti tutti gli include/require, io aggiungerei nel buglione anche
tutti i tag "A" e "FORM", e a questo punto puoi avere un punto di
partenza, poi devi comunque raffinare a mano...
bye!

 applicazione vera e propria.
secondo me non si tiene neanche tutte le librerie, visto che da per 
scontato che negli include ci sia il vero nome del file e non:
include (LIBPATH.$nomefile)
che è una cosa possibilissima

 che è una cosa possibilissima
anche questo è vero !
In sostanza non c'e' nessuna possibile soluzione "automatica" al problema !
ciao
Mauro


Se non usando un programma che fà girare l'applicazione 'al suo
interno' e la analizza, cosa che normalmente fà un ide, bisogna vedere
se ce n'è uno che fà anche la 'tracciatura' (magari con qualche
plugin?)

un consiglio: vai a chiedere su 
stackoverflow.com
 e vedi che ti dicono

 sorgenti tutti gli include/require, io aggiungerei nel buglione anche
if pippo
 $a = "file1.php"
else
 $a = "file2.php"
/if
include $a
fallirebbe,
fossi in lui farei un 
find ./ -name *.php 
find ./ -name *.inc
find ./ -name *.css
find ./ -name *.htm
find ./ -name *.html
find ./ -name *.jpg / png /gif
insomma una roba del genere 
-- 
give it away

 insomma una roba del genere
esatto ed opzione -atime per vedere i file non usati di recente

Il 25/02/10 09.32, Innuendo ha scritto:

Perfetto :)
Mi sa che ho risposto con troppa fretta....