2012-11-06 13 views
6

Ürün örneklerinin, bu dosyanın kendi sürümünün bir kopyası bulunana kadar ana çerçeve dosyalarını kullandığı bir çerçeve yapıyorum. Ben ilk /view-users.php için MY_PRODUCT_ROOT görüneceğini ve tespit değilse, o zaman MY_FRAMEWORK_ROOT/view kullanıcılara bakacağız include('view-users.php'); ararsanız YaniPHP yol sırasını ve durum önbelleğini içerir

set_include_path(MY_PRODUCT_ROOT.'/' . PATH_SEPARATOR . MY_FRAMEWORK_ROOT.'/'); 

: Aşağıdaki bu yaptım ulaşmak için .php.

Ürün yordamına dosya ekleyene kadar bu yordam çok güzel çalışıyor. PHP/Apache'nin içeriklerini önbelleğe aldığını ve herhangi bir durum önbelleğini temizlemek için clearstatcache(true);'u çalıştırmayı düşüneceğini biliyorum. PHP büyük olasılıkla içinde file_exists kullanır include(); ve yeni dosyanın hala mevcut olmadığını düşünüyor. Apache'yi yeniden başlatmayı denedim.

Maalesef clearstatcache(true); çalışıyorsa, o da yardımcı olmuyor. Sadece bir kez MY_FRAMEWORK_ROOT/dosyasını sildikten sonra önbelleği temizlemeyi ve tekrar denemeyi düşünür, böylece MY_PRODUCT_ROOT/dosyası bulunur. Biraz stumped

Im

, biz dosya (lar) mevcut olup olmadığı PHP/Apache anlayışını yenilemek gerekiyor biliyorum, ama clearstatcache(true); yardımcı olmuyor ...

Herhangi bir fikir?

UPDATE: Düzeltme, yeniden başlatma Apache'nin şimdi yardımcı olduğu görülüyor. Gelişme ortamı Windows üzerinde Zend Server CE PHP 5.3.14 olduğunu, Üretim ortamı Centos Linux httpd: Ben özelleştirme

GÜNCELLEME için, varolan MY_FRAMEWORK_ROOT dosyasını çakışmasına, MY_PRODUCT_ROOT bir dosya ADD çalışırken bu yalnızca oluştuğunu yinelemek , PHP 5.3+. Zend iyileştiricisinin dev ortamımda etkin olması gerçeği de olabilir, APC'yi veya diğer önbellekleme komutlarını da kullanmıyor da

+0

Daha kesin olmak gerekirse, apache'nin yeniden başlatılması yalnızca clearstatcache çağrılırken çalışır. Çerçeve dosyasını silmeli, sonra sayfayı yeniden yüklemeli ve çerçeve dosyasını – Prof83

+1

geri koymalı apc önbelleği var mı? (veya başka bir önkoşul önbelleği) –

+0

Ben de sorununuzu php-5.3.3 ve apache 2.2.16 üzerinde yeniden oluşturamadım. Çevreniz hakkında daha fazla bilgi verebilir misiniz? – Lars

cevap

2

Zend Optimizer+, opcode önbelleğe alma ve en iyileştirme ile PHP yürütmesini hızlandırır. Önceden yazılmış komut dosyası bayt kodunu paylaşılan belleğe kaydeder. Bu, diskin okuma kodunu aşamalarını ortadan kaldırır ve gelecekteki erişimde derler. Daha fazla performans iyileştirmesi için depolanan bayt kodu, daha hızlı yürütme için optimize edilmiştir.

Bu, içerdiği dosya içeriklerini önbelleğe alır, dolayısıyla clearstatcache çalışmaz. Zend Optimizer'ımı devre dışı bıraktım ve şimdi çalışıyor.

+1

Kendi cevabınızı kabul edebileceğinizi lütfen unutmayın. Ayrıca, Zend Optimizer + etkinken 'clearstatcache (true, true)' fark ederse, lütfen kontrol edebilir misiniz? Aksi halde, ürün ana sayfasında bir hata raporu göndermelisiniz. – Lars

+0

Teşekkürler @Lars bunu test edecek ... – Prof83

İlgili konular