Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Laravel] Cache
john_doe
post 4.06.2018, 13:27:34
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


Hej,

znalazłem, jak narazie jedyny, artykuł na temat "keszowania" ( w rozumieniu, że nie zwykły Cache::remember w kontrolerze ) , który niby ma odświeżać cache po modyfikacji modelu.

klik

Napisałem sobie generyczne CrudRepository np z taką metodą
  1. public function getBy(string $fieldName, $fieldValue, array $columns = ['*'], $orderBy = null): Collection
  2. {
  3. $stmt = $this->model->where($fieldName, $fieldValue);
  4.  
  5. if (!empty($orderBy))
  6. {
  7. $stmt->orderBy($orderBy);
  8. }
  9.  
  10. return $stmt->get($columns);
  11. }


Chciałbym dołożyć coś w stylu jak w linku aby poprawić wydajność aplikacji oraz aby było to uniwersalne i nie brało z "keszu" jeśli model jest nowszy. Konfiguracja drivera standardowa = file.
Czy możecie podpowiedzieć jak utworzyć np. jakiś bazowy model, który rozszerzałby Eloquent/Model?

Ten post edytował john_doe 4.06.2018, 13:28:48
Go to the top of the page
+Quote Post
Pilsener
post 7.06.2018, 07:32:43
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Implementacja nowych funkcjonalności to był może i dobry powód by rozszerzać klasę w PHP, ale z 10 lat temu albo więcej (kiedy dziedziczenie i singleton to były jedyne słuszne wzorce, hehe)
Dzisiaj takie rzeczy załatwia się poprzez delegację, czyli dostarczenie jakiejś tam funkcjonalności w miejsce, gdzie jest ona potrzebna.
Masz już repository, więc wg mnie dobrze jest przygotować sobie serwis "cache" i po prostu użyć go w tym repository.
Z tego co pamiętam Laravel daje łatwą możliwość wstrzyknięcia serwisu przez konstruktor i dysponuje także kontenerem serwisów, więc nie powinno być problemu.
Dodatkowo prawie zawsze istnieje potrzeba keszowania nie tylko zapytań do bazy i wtedy wszystko mamy załatwione jednym serwisem.
Go to the top of the page
+Quote Post
kleus
post 23.08.2018, 10:26:45
Post #3





Grupa: Zarejestrowani
Postów: 93
Pomógł: 7
Dołączył: 22.10.2009
Skąd: Siędzę

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


Tak jak kolega Pilsener wspomnial najelpiej przez class contructor dac cache i tak go uzywac... jezli juz naprawde chcesz robic cache bazy... co jest dziwne.
Jestem pewien ze odczyc z cache i bazy trwa dokladnie tak samo dlugo - a raczej jest tak samo szybki... WIec po co?

Ten post edytował kleus 23.08.2018, 10:27:22
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 29.03.2024 - 02:36