2012-11-12 5 views
28

Il nostro software che alimenta la nostra attività è di circa 16.000 file PHP. È un sistema assolutamente vasto. Zend Studio richiede letteralmente diverse ore per eseguire l'indicizzazione DLTK.DLTK Indicizzazione in corso

Non riesco a trovare una risposta aggiornata su questo, ma deve esserci un modo per disattivarlo o limitarlo a determinate directory.

Inoltre, cosa sta facendo esattamente questo processo?

Grazie.

risposta

46

L'indicizzazione DLTK è una funzionalità di Eclipse che indicizza le informazioni su linguaggi dinamici come PHP o Perl. Per PHP, questo include le definizioni di classe che includono le loro proprietà e metodi, i prototipi di funzioni, risolve il codice che è incluso o richiesto in altri file e molte altre cose.

In caso contrario, si perderebbero cose come il completamento automatico per le classi e le funzioni definite dal progetto. Aiuta anche con il refactoring, quindi se si rinomina una funzione, è possibile aggiornare tutti gli altri file che fanno riferimento a tale funzione.

Generalmente è una buona cosa, ma sento il tuo dolore e ho incontrato lo stesso numero un numero di volte.

È possibile impedire l'indicizzazione di determinate directory facendo clic con il pulsante destro del mouse sulla cartella che si desidera escludere dall'indicizzazione nel progetto e selezionando Build Path e quindi facendo clic su Exclude. Questo dovrebbe impedirgli di essere indicizzato da questo processo.

Exclude from build path

In alternativa, si può tirare sulle proprietà del progetto e gestire i percorsi esclusi da lì:

Exclude from build path

+2

Grazie per la risposta. Molto utile. Capisco quanto sia importante l'indicizzazione, ed è davvero utile quando si sta indicizzando il nostro software, eppure quando si indicizzano librerie e framework, non è così utile, dato che non li faremo mai clic e li modificeremo. Ancora una volta, grazie per la risposta dettagliata su come escludere le directory. –

+2

Inoltre, sarebbe utile se potesse essere programmato per essere eseguito in un punto particolare. Sei a conoscenza di un modo per attivare questo tramite la riga di comando? Potrei installare un'attività pianificata o cron per attivarla. Può essere attivato da CTRL + B all'interno di eclipse/zend, ma avere "Build Automatically" disattivato e l'attivazione alla fine della giornata lavorativa tramite ST/cron sarebbe una soluzione perfetta. –

+2

Non sono a conoscenza di alcun modo per automatizzare questo processo. Sembra che potrebbe essere possibile data la natura modulare di Eclipse ma alcune ricerche veloci non hanno rivelato alcun modo di farlo. IRT indicizzando le librerie e i framework, suppongo che l'unica ragione per cui si desideri siano indicizzati è se il codice che si scrive dipende molto da quelle librerie. Senza indicizzati, non otterrai alcun completamento automatico o suggerimento per quelle librerie e verranno visualizzati come oggetti non definiti nei file di origine che li utilizzano. – drew010

1

Rompere la vostra base di codice enorme in moduli e quindi si può avere molti piccoli progetti in Zend Studio, ognuno con molto meno da indicizzare quando le dipendenze sono trattate come librerie.

+1

Concordo sul fatto che un enorme numero di codice come questo dovrebbe essere suddiviso in un modo che consenta di caricare le cose in modo più modulare, ma questa è una soluzione a lungo termine che richiederà molto tempo e la maggior parte delle persone in questa situazione deve lavorare per un cliente fatto immediatamente, anche se il codebase non è ben progettato. –

3

Se si dispone di più progetti e alcuni di essi vengono utilizzati molto raramente, è sufficiente chiudere il progetto (dal menu di scelta rapida): questo impedirà di eseguire l'indicizzazione DLTK su tali progetti chiusi.

Si noti che la chiusura del progetto NON la rimuove, quindi se un giorno è necessario accedere o modificare alcuni file, è sufficiente riaprirlo.