2012-10-19 38 views
14

SF2'yi eski projemizin bir parçası olarak kullanıyorum, tüm çerçeveyi değil, ihtiyaç duyduğum paket ve bileşenleri çekerek. Ben SF2 tamamını kullanarak olsam (bu bootstrap.php.cache dosyası buna nasıl üretildiğini, bunun için var, ne için olduğunu merakSymfony2 bootstrap.php.cache dosyasının amacı nedir?

$loader = require_once __DIR__.'/../app/bootstrap.php.cache'; 

require_once __DIR__.'/../app/AppKernel.php'; 
//require_once __DIR__.'/../app/AppCache.php'; 

$kernel = new AppKernel('prod', false); 
$kernel->loadClassCache(); 

: Ve ben her zaman bu kod satırları hakkında merak etmiş çerçeve). Daha önce kullanmadım ve hiç problem olmadı, ama merak ediyorum ki bu bana bakmam gereken bir performans artışı verebilir mi? Her yeri bulmaya çalıştım ama bu konuya adanmış bir belge bulamadım.

cevap

13

Optimal esneklik ve kodun yeniden kullanılmasını sağlamak için Symfony2 uygulamaları çeşitli sınıfları ve üçüncü taraf bileşenlerini kullanır. Ancak, bu sınıfların tümünü, her bir istek üzerine ayrı dosyalardan yüklemek bazı ek yüklere neden olabilir. Bu ek yükü azaltmak için Symfony2 Standard Edition, tek bir dosyada birden fazla sınıf tanımından oluşan bir bootstrap dosyası oluşturmak için bir komut dosyası sunar. Bu dosyayı dahil ederek (çekirdek sınıfların çoğunun bir kopyasını içeren), Symfony artık bu sınıfları içeren kaynak dosyalardan herhangi birini içermelidir. Bu disk IO'yu biraz azaltacaktır.

Kaynak: Use Bootstrap Files. Symfony documentation itibaren

+0

İkinize de teşekkürler^_^ – mr1031011

+0

Önyükleme dosyasını kontrol ettim ve "Symfony \ Component" paketinden sadece "bootstraps" gibi görünüyor. (Http://pastebin.com/0ppmv2ke). Performansı arttırmak için projemin tüm sınıflarını "önceden yüklemenin" bir yolu var mı? Yoksa gereksiz mi? –

11

:

optimum esneklik ve kodu yeniden Symfony2 uygulamaları kaldıraç sınıfları ve 3. parti bileşenleri çeşitli sağlamak. Ancak, bu sınıfların tümünü, her bir istek üzerine ayrı dosyalardan yüklemek bazı ek yüklere neden olabilir. Bu ek yükü azaltmak için Symfony2 Standard Edition, tek bir dosyada birden fazla sınıf tanımından oluşan bir bootstrap dosyası oluşturmak için bir komut dosyası sunar. Bu dosyayı dahil ederek (çekirdek sınıfların çoğunun bir kopyasını içeren), Symfony artık bu sınıfları içeren kaynak dosyalardan herhangi birini içermelidir. Bu disk IO'yu biraz azaltacaktır.

Böyle sizin önyükleme dosyası oluşturabilirsiniz: o yığın izleri satır numaraları değiştirdiği için

php vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php 
+0

İlk ben oldum. : P –

+0

bunun için çok teşekkür ederim. – mr1031011