Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF] ZF1 - początki cache
IceManSpy
post
Post #1





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cześć

Mam już wykonaną aplikację w Z1. Nie jest ona jakaś wielka, lecz mam dorobić do niej cacheowanie danych. Jednak nie za bardzo wiem, od czego rozpocząć i jak dorobić do już istniejącej aplikacji taką funkcjonalność. Aplikacja jest podzielona na moduły jeśli ma to znaczenie.

Przeglądając różne informacje, nie znajduję przykładów z aplikacji wziętych. Tylko jakiś cache w pętach for. Znalazłem u nas na forum coś takiego:
http://forum.php.pl/index.php?showtopic=122459

Ale jak w tym wypadku wygląda sprawa routingu? Czy przy cache podaje się ścieżki zendowskie np. galery/index/show/id/2 czy można swoje np. galeria/2 ?

Co oczekuję od cache, tzn co chcę cacheować. Zapytania z DB oraz widoki w pewnych przypadkach i trzymać to w plikach. Np. mam galerię o ID 2, gdzie pobierane z bazy są obrazki (nazwy plików) i wyświetlane w widoku. I ten widok chciałbym cały zcacheować, ponieważ nie będą się tam tak często dane zmieniać – praktycznie w ogóle.

Mogę liczyć na jakieś wskazówki? Jakich klas używać? Czy definiuje to w controlera, bootstrapie, pindex.php czy gdzie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
IceManSpy
post
Post #2





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Też myślałem o bootstrapie i chyba jednak tam przeniosę uruchamianie.
Jeszcze przeprowadzam nauko-test z cache całej strony (na razie zapisane mam jako plugin i chce cache'ować wszystkie podstrony - na wyrost też są wszystkie parametry).
  1. public function getTestCache()
  2. {
  3. $frontendOptions = array(
  4. 'lifetime' => 7200,
  5. 'debug_header' => true, // for debugging
  6. 'default_options' => array(
  7. 'cache_with_get_variables' => true,
  8. 'cache_with_post_variables' => true,
  9. 'cache_with_session_variables' => true,
  10. 'cache_with_files_variables' => true,
  11. 'cache_with_cookie_variables' => true,
  12. 'make_id_with_get_variables' => true,
  13. 'make_id_with_post_variables' => true,
  14. 'make_id_with_session_variables' => true,
  15. 'make_id_with_files_variables' => true,
  16. 'make_id_with_cookie_variables' => true,
  17. 'cache'=>true)
  18. );
  19.  
  20. $backendOptions = array(
  21. 'cache_dir' => APPLICATION_PATH.'/../cache/views'
  22. );
  23.  
  24. $cache = Zend_Cache::factory('Page',
  25. 'File',
  26. $frontendOptions,
  27. $backendOptions);
  28.  
  29. return $cache;
  30. }

A kontrolerze dla wybranej akcji robię tak:
  1. $a = new My_CacheManager();
  2. $b = $a->getTestCache();
  3. $b->start();

Tworzy się plik cache, ale mogę to zrobić tylko raz! Potem pojawia mi się biała strona i przy włączonym debugowaniu mam info, że strona jest zcache'owana.

Ale jak przeniosę kod z wybranej akcji do init, to (po wyczyszczeniu cache) działa bez problemów. Czym się to tak na prawdę różni (wiem, że init odpala się przed każdą akcja)?
Czy jakbym chciał zdefiniować wybrane akcje do cache, to muszę robić to w tablicy frontendOptions jako regexps'y?

Ten post edytował IceManSpy 15.12.2012, 23:42:48
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 06:58