PHP sadece bir kez Sunucusu başlatılamadı nasıl

5 Cevap java

Ben PHP, Java Servlet bir uygulama taşıma duyuyorum. PHP Servlet.init (eşdeğer nedir) bulunuyor?

Temel olarak, sayfa hesaplanan gereken bir tablosunu kullanır. Bu oldukça pahalı operasyonları bulunuyor. Ben bir lamba kullanıyorum. Ben Apache başlangıçta sadece bir kez tablosunu başlatmak için bir yol olup olmadığını merak ediyorum?

5 Cevap

Eğer gerçekten eserleri aşina Servlet.init () yöntemi şeklini taklit birkaç şekilde ama hiçbiri bu yapabilirsiniz. Sen değeri başlatmak olabilir ya ve oturumda depolamak, ancak her kullanıcı için ceza oluşturabilir ya da uygulama için erişim olurdu ve her kullanıcı için benzersiz olmaz bir önbelleği kullanmak olurdu. Zend ile çalışır cache arayüz kullanımı oldukça kolay olan her iki bellek tabanlı ve dosya tabanlı önbelleğe alma (APC veya eAccelerator ile gibi).

Sen http://www.zend.com/products/platform/ gibi bir şey gerekir. Uygulama sunucuları PHP aksine her isteği üzerine tüm işlem yapar. Zend platformu gibi bir şey olmadan kalıcılık kavramı yoktur.

PHP bir uygulama sahasına sahip değildir. Sen $GLOBALS kötüye olabilir, ama daha iyi $_SESSION veya kullanarak veri depolamak için Zend_Cache.

Tüm oturumlar arasında paylaşılan tek bir tablo istiyor? PHP oturumları tamamen izole yapmak zor çalışır. Hatta static değişkenleri sayfa başına başlatıldı. Sen APC, memcache veya benzer kullanabilirsiniz.

Belki tablo sunucuda bir dosyadan başlatılmış olabilir?

Örneğin, tablo şey güncellenir, her zaman yeniden inşa edilmesi için varsa, o zaman başlatma sırasında PHP kodu:

compare data source update against file update time
if file needs update, then 
    do number crunching
    write into file
else
    read file

Bu güncellenen ise kullanılan dosyayı engelleyen mantık, bir Birliktelik 101 egzersiz ile desteklenmesi gerekir.