![]() |
![]() |
![]() ![]()
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ą
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 |
|
|
![]() |
![]()
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 11:05 |