Mam kolekcję, której ładowanie zajmuje dużo czasu. To, co chciałbym, to cacheować (APC, Memcache). Nie można buforować całego obiektu (ponieważ nie może on być spersonalizowany i ma ponad 1 MB). Myślę, że buforowanie danych kolekcji ($ col-> getData()) jest drogą do zrobienia, ale nie znalazłem sposobu na odbudowanie obiektu na podstawie tej tablicy. Jakieś wskazówki?Jak buforować kolekcję w Magento?
Odpowiedz
Naprawdę nie wiem, ale szukałem wszystkich plików, które zawierają słowo "cache" z nazwami plików "Collection.php" i otrzymałem kilka wyników. Najbardziej obiecującym przykładem może być metoda Mage_Sales_Model_Entity_Quote_Item_Collection (_getProductCollection()
). Wygląda na to, że Varien_Data_Collection
(która jest rodzicielską klasą dowolnej kolekcji Magento) ma kilka metod związanych z pamięcią podręczną: initCache() and _getCacheInstance().
Nie mogę powiedzieć, że użyłem ich wcześniej, ale mogą się one przydać kiedyś.
Powodzenia.
Można uzyskać więcej informacji tutaj: Can I use Magento's Caching layer as a Key/Value Store?
będę delegowania więcej informacji tam znajdę go.
Kolekcje mają już pewne buforowanie wbudowany ale muszą trochę skłoniło więc umieścić to w konstruktorze kolekcji:
$cache = Mage::app()->getCacheInstance();
$prefix = "SomeUniqueValue";
$this->initCache($cache, $prefix, array(Mage_Catalog_Model_Product::CACHE_TAG));
Wybierz tagów odpowiednie do zawartości kolekcji, dzięki czemu będzie ona zaczerwieniona automatycznie . W ten sposób buduje identyfikator na podstawie wykonywanego zapytania, jest najbardziej przydatny, gdy kolekcja jest filtrowana, sortowana lub stronicowana - pozwala uniknąć konfliktu wersji.
Ogólnie rzecz biorąc, prawie się to nie przydaje, ponieważ podczas pobierania danych prawie zawsze kończy się wyświetlaniem go, prawdopodobnie jako HTML, więc sensowne jest buforowanie danych wyjściowych. Blokowanie buforowania jest szeroko stosowane i lepiej udokumentowane.
- 1. Jak sortować kolekcję w Magento?
- 2. Jak buforować w Symfony 2?
- 3. Jak buforować zdarzenia strumieniowe?
- 4. Jak buforować odczyty?
- 5. Jak buforować uchwyty plików?
- 6. Magento Uzyskaj kolekcję produktów Filtruj według identyfikatora sklepu
- 7. Aby buforować lub nie buforować - GetCustomAttributes
- 8. Jak drukować zbiórki zapytanie mysql w Magento
- 9. Jak buforować pobrane pakiety PIP
- 10. Jak ustawić kolekcję w linii?
- 11. Jak upuścić kolekcję w MongoDB?
- 12. Jak buforować stronę internetową w PHP?
- 13. Jak buforować widoki w systemie Android?
- 14. Jak mogę buforować kolumnę obliczeniową w szynach?
- 15. Jak podwójnie buforować Panel w C#?
- 16. Jak nazwać kolekcję flag?
- 17. Jak sklonować kolekcję kręgosłupa
- 18. Szkielet - Jak wyciąć kolekcję?
- 19. Jak dołączyć do kolekcji w Magento?
- 20. Jak przekształcić kolekcję Scala opcji [X] na kolekcję X
- 21. Ajax nie może buforować
- 22. Sklonuj kolekcję w MongoDB
- 23. Skróć kolekcję
- 24. Jak POST buforować JSON przy użyciu libcurl?
- 25. Yii2: jak buforować aktywnego dostawcę danych?
- 26. Scala: jak połączyć kolekcję map
- 27. Jak skopiować kolekcję do zaobserwowania
- 28. Jak buforować odpowiedzi REST, Wiosna dla Androida
- 29. Jak zdobyć kolekcję kluczy w słowniku javascript?
- 30. Jak czytać kolekcję w kawałkach przez 1000?
Jak mogę buforować kolekcję zamiast bloku Block Objetc ??? – davidselo
Nie rozumiem pytania. – clockworkgeek
Jeśli mogę zrobić trought Block with Mage :: getModel ("przykład/przykład") -> getCollection() -> initCache (...). Tworzenie nowej kolekcji od czasu wystąpienia bloku – davidselo