2012-11-12 32 views
28

İşletmemize güç veren yazılımımız yaklaşık 16.000 PHP dosyasıdır. Bu kesinlikle geniş bir sistem. Zend Studio, DLTK endekslemeyi çalıştırmak için tam anlamıyla birkaç saat sürüyor.DLTK İndeksleme devam ediyor

Bu konuda güncel bir yanıt bulamıyorum, ancak devre dışı bırakmanın veya belirli dizinlere kısıtlamanın bir yolu olmalı.

Ayrıca, bu işlem tam olarak ne yapıyor?

Teşekkürler.

cevap

46

DLTK dizini, PHP veya Perl gibi dinamik diller hakkındaki bilgileri dizinleyen bir Eclipse özelliğidir. PHP için, bunların özellikleri ve yöntemleri, işlev prototipleri, diğer dosyaların yanı sıra diğer dosyalarda yer alan veya gerekli olan kodları çözen sınıf tanımlarını içerir.

Bu olmadan, projeniz tarafından tanımlanan sınıflar ve işlevler için otomatik tamamlama gibi şeyleri kaybedersiniz. Ayrıca, bir işlevi yeniden adlandırırsanız, bu işleve başvuran tüm diğer dosyaları da güncelleyebilmeniz için yeniden düzenleme ile yardımcı olur.

Genel olarak iyi bir şey ama acınızı hissediyorum ve aynı konuya birkaç kez rastladım.

Bazı dizinlerin, projenizde dizine eklenmek istediğiniz dizini sağ tıklatıp Build Path öğesini seçip Exclude öğesini tıklatarak dizine eklenmesine engelleyebilirsiniz. Bu, bu işlem tarafından dizine alınmasını engellemelidir.

Exclude from build path

Alternatif olarak, proje özelliklerini yukarı çekin ve yönetmek dışlanan yolları oradan edebilirsiniz: modüllere içine kocaman kod tabanı üzerinden

Exclude from build path

+2

Cevabınız için teşekkür ederiz. Çok yararlı. Endekslemenin ne kadar önemli olduğunu anlıyorum ve yazılımımızı dizine eklerken gerçekten yararlıdır, ancak kütüphaneleri ve çerçeveleri dizine eklerken, asla bunları tıklamayacak ve düzenlemeyeceğimiz kadar da yararlı değildir. Yine, dizinleri nasıl hariç tutacağınıza dair ayrıntılı yanıt için teşekkürler. –

+2

Ayrıca, belirli bir noktada çalışacak şekilde programlanabilirse yararlı olur. Bunu komut satırı aracılığıyla tetiklemenin herhangi bir yolunun farkında mısınız? Bunu tetiklemek için zamanlanmış bir görev veya cron kurabilirim. Eclipse/zend içinde CTRL + B tarafından tetiklenebilir, ancak "Otomatik Olarak Oluştur" seçeneğine sahip olabilir ve ST/cron ile çalışma gününün sonunda tetikleme mükemmel bir çözüm olacaktır. –

+2

Bu işlemi otomatik hale getirmenin herhangi bir yolunun farkında değilim. Tutulmanın modüler doğası göz önüne alındığında mümkün olabilir, ancak bazı hızlı aramalar bunu yapmanın herhangi bir yolunu ortaya çıkarmamıştır. IRT kütüphaneleri ve çerçeveleri indeksleyerek, yazdığınız kodun bu kütüphanelere çok fazla dayanması durumunda endekslenmesini istemenin tek sebebi var. Dizine alınmadan, bu kitaplıklar için herhangi bir otomatik tamamlama veya ipucu almayacaksınız ve kaynak dosyalarınızda bunları kullanan tanımlanmamış nesneler olarak gösterecekler. – drew010

1

Sonu'nu ve sonra daha küçük birçok olabilir Zend Studio'daki projeler, her biri bağımlılıklar kütüphane olarak ele alındığında endekslenmek için çok daha az.

+1

Buna benzer büyük bir kod tabanının, daha modüler bir şekilde yükleme yapabilmenizi sağlayacak şekilde bölünmesi gerektiğini düşünüyorum, ancak bu çok zaman alacak uzun vadeli bir çözümdür ve bu durumdaki insanların çoğunun işe alınması gerekir codebase iyi tasarlanmış olmasa bile, bir müşteri için hemen yapılır. –

3

Birden fazla projeniz varsa ve bunlardan bazılarını çok nadiren kullanıyorsanız, projeyi (sağ tıklama menüsünden) kapatabilirsiniz: bu kapalı projeler üzerinde DLTK indekslemeyi engeller.

Lütfen unutmayın, projeyi kapatmamanız YAZILMAYACAĞIZ, bir gün bir dosyaya erişmeniz veya bir dosyayı değiştirmeniz gerekiyorsa onu yeniden açabilirsiniz.

İlgili konular