2012-11-12 13 views
28

Unsere Software, die unser Geschäft antreibt, ist fast 16.000 PHP-Dateien lang. Es ist ein absolut riesiges System. Zend Studio benötigt buchstäblich mehrere Stunden, um die DLTK-Indizierung durchzuführen.DLTK Indexierung läuft

Ich kann hier keine aktuelle Antwort finden, aber es muss eine Möglichkeit geben, sie zu deaktivieren oder auf bestimmte Verzeichnisse zu beschränken.

Was genau macht dieser Prozess?

Danke.

Antwort

46

Die DLTK-Indizierung ist eine Funktion von Eclipse, die Informationen zu dynamischen Sprachen wie PHP oder Perl indiziert. Für PHP umfasst dies Klassendefinitionen einschließlich ihrer Eigenschaften und Methoden, Funktionsprototypen, Auflösen von Code, der in anderen Dateien enthalten oder erforderlich ist, sowie viele andere Dinge.

Ohne sie würden Sie Dinge wie Autovervollständigung für Klassen und Funktionen verlieren, die von Ihrem Projekt definiert wurden. Es hilft auch beim Refactoring. Wenn Sie also eine Funktion umbenennen, kann sie alle anderen Dateien aktualisieren, die auf diese Funktion verweisen.

Es ist in der Regel eine gute Sache, aber ich fühle Ihre Schmerzen und sind mehrmals in das gleiche Problem gerannt.

Sie können die Indexierung bestimmter Verzeichnisse verhindern, indem Sie mit der rechten Maustaste auf den Ordner klicken, den Sie von der Indizierung in Ihrem Projekt ausschließen möchten. Wählen Sie Build Path und klicken Sie dann auf Exclude. Dies sollte verhindern, dass es durch diesen Prozess indiziert wird.

Exclude from build path

+2

Vielen Dank für Ihre Antwort. Sehr hilfreich. Ich verstehe, wie wichtig die Indexierung ist, und sie ist sehr hilfreich, wenn es um die Indizierung unserer Software geht. Wenn sie Bibliotheken und Frameworks indiziert, ist das nicht so hilfreich, da wir sie nie durchklicken und bearbeiten würden. Nochmals vielen Dank für die detaillierte Antwort zum Ausschließen von Verzeichnissen. –

+2

Darüber hinaus wäre es nützlich, wenn geplant werden könnte, um an einem bestimmten Punkt auszuführen. Ist Ihnen bekannt, wie Sie dies über die Befehlszeile auslösen können? Ich könnte eine geplante Aufgabe oder Cron einrichten, um sie auszulösen. Es kann durch STRG + B innerhalb von Eclipse/Zend ausgelöst werden, aber "Automatisch erstellen" deaktiviert zu haben und am Ende des Arbeitstages über ST/cron auszulösen wäre eine perfekte Abhilfe. –

+2

Mir ist keine Möglichkeit bekannt, diesen Prozess zu automatisieren. Es scheint, als wäre es angesichts der Modularität von Eclipse möglich, aber einige schnelle Suchen haben keine Möglichkeit ergeben, dies zu tun. Bei der IRT-Indizierung der Bibliotheken und Frameworks nehme ich an, dass der einzige Grund für die Indexierung darin besteht, dass der Code, den Sie schreiben, sehr stark von diesen Bibliotheken abhängt. Wenn sie nicht indiziert sind, erhalten Sie keine automatische Vervollständigung oder Hinweise für diese Bibliotheken, und sie würden als nicht definierte Objekte in Ihren Quelldateien angezeigt, die sie verwenden. – drew010

1

Brechen Sie Ihren großen Code-Basis in Module und dann können Sie haben viele kleinere:

Exclude from build path

Alternativ können Sie die Projekteigenschaften und verwalten die ausgeschlossenen Pfade von dort nach oben ziehen Projekte in Zend Studio, die jeweils viel weniger zu indexieren haben, wenn die Abhängigkeiten als Bibliotheken behandelt werden.

+1

Ich stimme zu, dass eine massive Codebasis wie diese so aufgeteilt werden sollte, dass Sie Dinge modularer laden können, aber das ist eine langfristige Lösung, die viel Zeit in Anspruch nehmen wird und die meisten Menschen in dieser Situation arbeiten müssen für einen Client sofort erledigt, auch wenn die Codebasis nicht gut gestaltet ist. –

3

Wenn Sie mehrere Projekte haben und einige davon sehr selten verwenden, können Sie das Projekt einfach schließen (über das Kontextmenü): Dies verhindert die DLTK-Indizierung für diese geschlossenen Projekte.

Bitte beachten Sie, dass das Schließen des Projekts es NICHT entfernt. Wenn Sie also eines Tages auf eine Datei zugreifen oder sie ändern müssen, können Sie sie einfach erneut öffnen.

Verwandte Themen