Hej!
Mam trochę zgryzu. Robię projekt, w którym chciałbym sobie ogarnąć fajne adresy URL. Zaprzągłem więc Zend_Route do roboty i wszystko super, okazuje sie jednak, że poszczególne ścieżki bywają generowane na kilka sposobów. Przykład:
serwer.pl/oferta/ - to jest zapisane sobie w pliku navigation.ini, który jest na sztywno i zawiera opcje w menu
serwer.pl/oferta/krzesla/ - to już jest ciągniete z bazy danych z tablicy "kategorie"
serwer.pl/oferta/krzesla/krzeslo_ludwik_16.html - to z kolei ciągnięte jest z tablicy "produkty"
No i tak sobie wymyśliłem, że jeżeli taki routing ma być budowany przy każdym uruchomieniu (wrzuciłem to wszystko do Bootstrapa do _initRouter() ) to chyba coś nie halo. Dlatego plan mam to wszystko w jakiś sposób cache'ować.
Utworzyłem sobie prosty zend_cache, ale w sumie utknąłem, bo co dalej? Jak sprawdzać, czy dana ścieżka routingu jest już w cache, jak dodawać nowe, jak wyciągnąć? Może to jest proste, ale długo nad tym dziś siedzę i już chyba utknąłem w jakiejś ślepej uliczce. Chciałbym w każdym razie mieć prosty mechanizm:
1. user odwiedza jakas sciezke
2. szukamy sciezki w tablicy routingu
2.1. pobieramy z cache tablice i sprawdzamy:
2.1.1. jest: przekierowanie - success
2.1.2. brak: - continue
2.2. sprawdzamy w bazie i pliku .ini
2.2.1. jest: przekierowanie - SUCCESS i dodajemy wpis w cache od razu
2.2.2. brak: błąd 404
Może ktoś robił już coś podobnego i jest w stanie mi swoją architekturę przedstawić?