Gereksiz php dosyaları dahil et yavaşlatacak mı?

8 Cevap php

Sorunun kesin bir EVET demek için bazı insanlar soracak veya NO hemen, ama lütfen okuyun olabilir ...

Ben 30 php sayfaları (her bazı php sunucu tarafı kodu + HTML / CSS vardır vs ..) var, basit bir web sitesi var. Karmaşık hiyerarşi, hiçbir şey. Sadece 30 sayfa.

, Veritabanına şeyler tasarrufu kimlik yapıyor, e-posta, sipariş işleme ve benzeri göndermek için kod var olanlar - Ben de tamamen arka-uç php dosyaları bir dizi var. Bunlar bu 30 içerik sayfalarında tarafından tekrar edilecektir.

Ben bir parametre göndermek hangi bir ana php dosyası var. Bu o 30 dosyalardan birine ihtiyaç belirten ve uygun içerik-sayfa içerir. Ama bu her biri dahil edilecek arka-uç dosyalarının değişken sayıda gerekebilir. Başka bir şey vb e-posta göndericisi, veritabanı ve doğrulama kodu gerekebilir iken başka, veritabanı kodu gerekebilir Örneğin bir içerik sayfası, arka ucundan hiçbir şey isteyebilir ..

Ben ne gerekiyorsa arka-uç sayfasında, uygun içerik sayfasına dahil edilebilir sanırım, ama bir küçük yolunda değişim ve ben dosyaların onlarca düzenlemek zorunda. Bu ana php dosyasında, which içerik sayfası istendiğinde (şey switch-case tipi) ve uygun arka-uç dosyaları bulunur kontrol etmek için çok hantal olacak. Yine, ben, bir tek yol değiştirirse birçok değişiklik yapmak zorunda.

Hiçbir içerik sayfası dahil değildir şey istemek böylece tembel olmak, ana dosya inthe ALL arka-uç dosyaları dahil.

İlk soru - bu iyi bir uygulamadır? bu hiç kimse tarafından yapılırsa.

İkincisi, bir performans sorunu veya ne olursa olsun gerekli olup olmadığını tüm arka-uç dosyaları da dahil olmak sebebiyle bana sorun her tür olacak?

EDIT

4000 ziyaretleri bir gün - web her yerde arasında 3000 alır.

8 Cevap

Sen kriter gerekir. Zaman farklı ile aynı sayfanın yürütme içerir. Ama 30 dosyaları ile çok fark olmaz sanırım.

Ama kendinize zaman kazanmak ve sadece php.ini içinde APC etkinleştirmek (bir PECL uzantısı olduğunu, bu yüzden size install ihtiyacınız) olabilir. Bu önemli ölçüde hızlandırmak, hangi dosyaların ayrıştırılmış içeriği önbelleğe alır.

BTW: tembellik ile yanlış bir şey yok, bu bile bir virtue ;)

Siteniz nesne yönelimli olup olmadığını otomatik olarak yüklenmesini (http://php.net/manual/en/language.oop5.autoload.php) kullanmanızı tavsiye ediyorum.

Bu gerektiğinde (sadece sizin gibi, tembel!) Bir sınıf aramak için sihirli bir yöntem (__autoload) kullanır, böylece belirli bir sayfa tüm sınıfları ihtiyacı yoksa, onları almak zorunda değil!

Nesne yönelimli olup olmadığını Yine olsa, bu bağlıdır ...

Muhtemelen değil olsa farkedilir bir miktarda, sitenizi yavaşlatacaktır. Bu da, uygulama düzenlemek için sağlıklı bir yol gibi görünmüyor; Bunu tekrar düşünmek istiyorum. Sunum katmanı (örn. HTML / CSS) uygulama mantığı (örneğin sunucu tarafı kod çoğu) ayırmaya çalışın.

Web sitenizin boyutu göz önüne alındığında; Eğer bir yavaşlama fark varsa, neden bunu düzeltmek için denemek?

Daha büyük siteler söz konusu olduğunda, yapmanız gereken ilk şey, APC yüklemektir. O, APC hala uydurup hız inanılmaz bir iş yapacak ki gibi dosyalar da dahil olmak üzere geçerli yöntem APC kadar fayda olmayabilir bile.

Tepki hızı hala sorunlu ise, all dosyaların dahil düşünmelisiniz. APC belleğinde SourceFiles önbelleğe alınmış bir sürümü tutacak, ancak no conditional includes varsa, sadece iyi yapabilirsiniz.

PHP uygulaması (çoğu büyük ölçekli web siteleri için dikkat Bellek darboğaz değil) bellek tükenmesi büyük bir risk olduğu bir boyutta olduğunda koşullu uygulamanızın parçaları dahil etmek isteyebilirsiniz.

Rasmus Lerdorf (PHP arkasındaki adam) kabul eder: http://pooteeweet.org/blog/538

Diğerleri söylediler, aşağı çok şeyleri yavaş olmamalı, ama 'ideal' değil.

Ana sorun, (yol şimdiye gelecekte güncellenmesi gerekiyor ise) tüm dahil dosyalar için yollarını değiştirerek gitmek için çok tembel olduğunuzu varsa. Sonra eklemek gerekir her zaman ana dosya yolunu tanımlamak için bir sabit kullanırsanız, ve sürekli kullanabilirsiniz / bir dosya gerektirir.

define('PATH_TO_FILES', '/var/www/html/mysite/includes/go/in/here/');

require_once PATH_TO_FILES.'database.php';
require_once PATH_TO_FILES.'sessions.php';
require_once PATH_TO_FILES.'otherstuff.php';

Yol değiştirirse bu şekilde, yalnızca bir kod satırı değiştirmeniz gerekir.

Ben yaşamak "mümkün olduğunca az dahil, gerektiği kadar" bu yüzden genellikle sadece benim yapılandırma ve her şey için taşıma oturumu içerir ve daha sonra her sayfa dahil onlar config tanımlanan bir içerme yolu kullanarak sadece ihtiyacınız olanı içerir böylece yolu değişiklikleri için hala sadece bir dosya değiştirmeniz gerekir.

Her şeyi eklerseniz yavaşlama size (saniyede birkaç hit) sayfası isabeti bir sürü almak kadar fark olmayacak böylece durumda her şeyi dahil Tamam olabilir.

Sen XCache tarafından PHP kod derleme bazı dezavantajları migitate edebilirsiniz. Bu PHP modül derleme zamanı ve performansı azaltır PHP-opcode önbelleğe alır.

Bu gerçekten web sitenizi yavaşlatacaktır. Çünkü PHP göreceli yavaş yükleme ve işleme çoğu. Eğer eklemek istediğiniz daha fazla kod, yavaş uygulama alacak.