PHP betikleri Rolling ve paketleme

3 Cevap php

Ben sadece üzerinde okuma this thread burada include_once ve require_once tartışılan ediliyordu kullanmanın artılarını ve eksilerini. Edildi Bu tartışma (özellikle Ambush Commander's answer), ben gerçeğini götürüldüğünü var (?) Herhangi bir tür PHP dahil yüzden OP kodları içine yeni bir dosya ayrıştırmak için işlemci gerektirir beri, doğal olarak pahalı olduğunu ve bundan üzerinde.

Bu düşünce beni var.

Ben küçük bir script yazdım hangi olacak "rulo" (başka bir dosya içine tüm içeriği ekleme) birine Javascript dosyaları bir dizi, bu packed HTTP isteklerini ve toplam bant genişliği kullanımını azaltmak için olabilir böyle.

Genellikle benim PHP uygulamaları için, ben her sayfaya eklenen bir "includes.php" dosyası var, ve o zaman ben gereken tüm sınıfları ve diğer kitaplıkları içerir. (Ben bu muhtemelen iyi bir uygulama değildir biliyorum, ama çalışıyor - PHP5 __autoload özellik, herhangi bir durumda, bu iyi yapıyor).

Should I apply the same "rolling" technique on my PHP files?

Ben erken optimizasyon kötü olma konusunda söyleyerek biliyorum, ama teorik olarak bu soruyu alalım, tamam mı?

3 Cevap

Yani birkaç küçük dosyaları ayrıştırmak için veya bir büyük bir ayrıştırmak için daha fazla çalışma olup olmadığı konusunda biraz bağlı olacaktır. Eğer (should bu şekilde şeyleri mutlaka size söylemiyorum) bir olarak, gerektiğinde dosyaları ihtiyacınız varsa o muhtemelen bazı yürütme yolları için tüm kod büyük bir içine yuvarlandı olsaydı daha gerekli daha az derleme olacaktır PHP çözümleyici ya da değil gerekli olup olmadığını tamamını kodlamak zorunda dosya.

Sorusu doğrultusunda, bu PHP zamanının iç donanım üzerinde uzmanlık daha yüksek sesle daha fazla düşünme, - tüm bu ile çok yer almak için herhangi bir gerçek dünya fayda var sanki o gelmiyor. Eğer PHP ciddi bir yavaşlama içine çalıştırırsanız Require_oncenin kullanımı darboğaz olduğu ortaya çıktı ise çok sürpriz olurdu.

Eğer söylediğim gibi: "prematüre optimizasyon ...". Eğer performansı hakkında endişeli iseniz Sonra tekrar, bu sorun neredeyse ortadan yapan APC gibi bir opcode önbellek, kullanın.

Bu sadece sizin "js ambalaj" hakkında doğrudan sorusuna bir cevap değildir.

Eğer yalnız javascript dosyaları bırakın ve onları HTML kaynağı ayrı ayrı dahil edilecek izin verirseniz, tarayıcı bu dosyaları önbelleğe alır. Tarayıcı aynı javascript dosyayı istediğinde, daha sonraki isteklerde, sunucu bir 304 modifiye değil başlığı döner ve tarayıcı önbelleğe alınmış sürümünü kullanacak. Her istek üzerine birlikte "ambalaj" javascript dosyaları Ancak, tarayıcı her sayfa yük dosyayı yeniden indirecektir.