2009-11-16 15 views
8

Moje Google-fu nie ujawniło tego, czego szukam, więc wysyłam to do tłumu.Równoważnik PHP obiektów aplikacji ASP.NET/pamięci podręcznej

Pochodzące z tła programowania ASP.NET, jestem przyzwyczajony do kolekcje Application i Cache dla mnie do przechowywania rzadko modyfikowane, ale często używanych zasobów (takich jak wyszukiwanie wierszy z bazy danych lub zawartość statycznych Dokumenty XML) w pamięci serwera WWW, więc nie muszę ponownie ładować tych często używanych elementów podczas każdego żądania.

Czy PHP ma odpowiednik? Przeczytałem już krótko o rozszerzeniu memcache, ale to nie zadziała dla mnie (ponieważ nie mam kontroli nad konfiguracją serwera). Mam ochotę wdrożyć coś, co pozwoliłoby mi na wstępne przetwarzanie lub pre-parsowanie. - wybierz zasoby i wygeneruj rodzaj "pliku" podręcznego PHP, który skonstruowałby buforowany obiekt z literałów zapisanych w pliku, ale wydaje mi się, że jest to dla mnie bardzo hackowe rozwiązanie.

Czy jest coś w PHP (lub, alternatywnie, biblioteka pomocnicza jakiegoś rodzaju), które pozwoli mi to osiągnąć przy użyciu sprawdzonych metod?

Odpowiedz

5

Krótko mówiąc, nie, coś takiego nie jest dostępne natywnie w PHP. Aby zrozumieć, dlaczego, musisz zrozumieć, że PHP ma całe środowisko zbudowane dla każdego żądania, a następnie jest zburzone na końcu żądania. PHP powoduje, że daje $ _SESSION do przechowywania na sesję zmiennych, ale po przekopaniu się w dokumentach zobaczysz, że ta zmienna jest budowana również podczas każdego żądania. PHP (lub mod php jest bardziej szczegółowy) różni się zasadniczo od innych "serwerów aplikacji". Zasadniczo nie jest to serwer aplikacji. Jest to runner skryptu na żądanie.

Teraz nie zrozumcie mnie źle, PHP pozwala na tworzenie magazynu danych na poziomie aplikacji, ale będziesz musiał przejść do bazy danych lub na dysk, aby go uzyskać. Pamiętaj jednak, nie martw się optymalizacją wydajności, dopóki nie zostanie pokazane, że wydajność jest problemem. I zgadnę, że 99 razy na 100, do czasu wydajność jest kwestią, która nie jest wynikiem jakiegoś kiepskiego kodu, który napisałeś, będziesz miał zasoby, aby zbudować swój własny, mały, mały, memcached serwer.

+0

Ah, tak. Pozwalam mu uciec z mojej głowy, jak PHP jest wywoływane przez serwer WWW. Dzięki za przypomnienie :) –

0

Zobacz na przykład bibliotekę Zend_Cache. Może buforować w wielu backendach.