[Klasa][PHP7] Cache |
[Klasa][PHP7] Cache |
8.06.2016, 17:50:00
Post
#1
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) |
Źródło:
https://github.com/KsaR99/php-cache Plik: class.Cache.php, zawiera klasę. Plik: cache.php, to przykładowe zastosowanie. Klas cache są miliony jednak chciałem stworzyć swoją własną, prostą. Do oceny:
Zastanawiam się nad metodą do kasacji cache, Jednak cache zazwyczaj się nie kasuje a podmienia. Warto dodać? Jeśli tak to prosił bym też o przykład - po co. Wszelkie uwagi mile widziane. Ten post edytował KsaR 8.06.2016, 17:51:54 -------------------- |
|
|
8.06.2016, 18:19:32
Post
#2
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) |
Przydała by się możliwość cachowania innych typów danych. ;]
|
|
|
8.06.2016, 18:33:23
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Kompresja gz. Do wywalenia. Jedynie spowalnia całość.
|
|
|
8.06.2016, 18:53:58
Post
#4
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 27 Dołączył: 22.09.2008 Skąd: Tarnów Ostrzeżenie: (0%) |
Więcej dokumentacji, niż właściwego kodu
-------------------- |
|
|
8.06.2016, 19:44:54
Post
#5
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) |
Przydała by się możliwość cachowania innych typów danych. ;] Postaram się dodać. Kompresja gz. Do wywalenia. Jedynie spowalnia całość. Domyślnie jest wyłączona więc nie powinno spowalniać. (Chyba że w ms). Więcej dokumentacji, niż właściwego kodu Przecież jest napisane "... prostą", ważne że robi swoje. -------------------- |
|
|
8.06.2016, 19:54:42
Post
#6
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 27 Dołączył: 22.09.2008 Skąd: Tarnów Ostrzeżenie: (0%) |
Co do phpdoc dla metod: całkiem niepotrzebny jest dla parametrów, dla których podajesz typ w kodzie. Zaciemnia to kod, dorzuca dodatkowy szum informacyjny, może prowadzić do problemów przy refactoringu - przy zmianie zachowania funkcji możesz zapomnieć o zmianie komentarza, który później będzie wprowadzał w błąd.
-- Edit -- "if you want use compression mode" vs "if you want to use compression mode". -- Edit -- Do tego throw Exception() przy użyciu namespace może wyrzucać błąd nieznalezienia klasy. Rzucaj \Exception albo bardziej oczywiste wyjątki jak \InvalidArgumentException. Ten post edytował mrc 8.06.2016, 19:58:54 -------------------- |
|
|
8.06.2016, 23:22:44
Post
#7
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
Dobre IDE podpowie, że typ się zmienił, a Storm używa phpDoca do podpowiadania, tylko mnie rażą te nazwy typów UpperCasem.
No ale skoro może spowalniać to poco wgl ja trzymać jako opcje? Cytat Do tego throw Exception() przy użyciu namespace może wyrzucać błąd nieznalezienia klasy. Nawet nie może tylko wyrzuci komentarze to nie
tylko
No i czemu taka archaiczna konwencja nazewnictwa? Gdzie PSR Nazywaj jakoś sensownie te commity Z ścieżki i innych zrobiłbym VO, bo czemu klasa cache ma za to odpowiadać, czy one są poprawne, jak to nie jej rola. I poco ustawiać wartości domyślne, parametrom którym wymuszasz ich zmianę? Zaraz, ja muszę stworzyć sobie plik żeby do niego pisać? poza tym else to zło, naprawdę nie można było
Btw treść commita to nie komentarz, bo wpisujesz tam to co ma znaczenie i utrudniasz sobie i innym czytanie commitów No i nazywaj te parametry tak żeby mówiły co robią, a nie np $compress - co sugeruje że coś jest skompresowane a nie wskazuje na flage itp Skoro używasz dobrodziejstw php 7 to poco sprawdzać isset($compress) && $compress bool to zawsze bool zrób sobie jakaś metodę do budowania właściwej ścieżki, bo tak ciężko to testować/refaktorwać potem Zrobiłem Ci pull requesta, bo za dużo tego było Ten post edytował com 8.06.2016, 20:58:01 |
|
|
9.06.2016, 07:13:13
Post
#8
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Skoro mamy już $extension i $isCompressed to warto by było nadać im jakiś default. Compressed na false, a ext. nie wiem może ".dat"
|
|
|
9.06.2016, 09:09:53
Post
#9
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
Ok uwzględnię, zastanawiałem się nad tym
|
|
|
9.06.2016, 10:09:22
Post
#10
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) |
(...), tylko mnie rażą te nazwy typów UpperCasem. No ale skoro może spowalniać to poco wgl ja trzymać jako opcje? (...)No i czemu taka archaiczna konwencja nazewnictwa? Gdzie PSR (...)Zaraz, ja muszę stworzyć sobie plik żeby do niego pisać? (...)No i nazywaj te parametry tak żeby mówiły co robią, a nie np $compress - co sugeruje że coś jest skompresowane a nie wskazuje na flage itp (...)Zrobiłem Ci pull requesta, bo za dużo tego było Dzięki, wiele zmian dodałem w ostatnich 2 commitach. Nie znalazłem nigdzie w PSR czy używać małymi czy dużymi te nazwy typów (było tylko o parametrach). Jeśli ktoś poda konkretny link do PSR gdzie pisze że trzeba małymi to poprawie, Póki co tak wg. mnie lepiej (typy z dużych, parametry z małych). Co do opcji, jak pisałem domyślnie jest wyłączone. Takie spowolnienie to jedynie użycie ternary operator - czyli żadne. A tak się przydaje gzip do większych plików. Co do tworzenia pliku - metoda set() tworzy/aktualizuje, validate jedynie sprawdza czy plik istnieję i jest aktualny... Więc nie rozumiem pytania. Zmieniłem z $compress na $useGZIP ($isCompress mi nie odpowiadało, "jestKompresja" vs "użyjGZIP").... JW. Jednak przeniosłem twoją metodę oraz pomysł na statyczne zmienne. + W poprzednim commicie zgodnie z komentarzem mrc skasowalem z komentarzy te typy które są zadeklarowane w metodzie - ty je znów dodałeś. ___________ Co do ".dat", zostaje przy ".txt" - jako ze to pliki tekstowe. Jednak zmienilem ze rozszerzenie bedzie ".gz" dla plików skompresowanych niezależnie od tego co się poda w konstruktorze. -------------------- |
|
|
9.06.2016, 10:19:35
Post
#11
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
|
|
|
9.06.2016, 10:26:48
Post
#12
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) |
True false null... Chodzi tu o dosłowne zastosowanie typu. $var = null; Itp. Nie jest napisane o PHP7 oraz wymuszonych typach metod/funkcji... A w końcu w php nie ma czegoś takiego jak: $var = string; $var = int;... Ten post edytował KsaR 9.06.2016, 10:27:32 -------------------- |
|
|
9.06.2016, 10:27:25
Post
#13
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
tak ale string, int, bool to też keywordsy więc do tego bym podciągnął
|
|
|
9.06.2016, 10:34:48
Post
#14
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) |
Poza tym upper case chyba zawsze był zarezerwowany dla stałych
|
|
|
9.06.2016, 10:51:31
Post
#15
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
https://github.com/php-fig/fig-standards/bl...-style-guide.md
Php7 jest jeszcze nie zatwierdzone ale jest ;) To co zmieniłeś nie ma sensu, bo parametr musisz podać wiec poco nam ?? Typy maja być, bo phpdoc nie jest jeszcze do php7 przygotowany i np Storm interpretuje potem twój komentarz jako klasę. Dlatego je dodałem, jak nie dajesz wgl komentarzy to wtedy można tak pisać, ale nwm czy to ma sens. nie było $isCompress tylko $isCompressed - jest skompresowany Cytat Jednak zmienilem ze rozszerzenie bedzie ".gz" dla plików skompresowanych niezależnie od tego co się poda w konstruktorze. Może to być dla kogoś wielkim zaskoczeniem Ten post edytował com 9.06.2016, 10:47:59 |
|
|
9.06.2016, 10:51:57
Post
#16
|
|
Grupa: Moderatorzy Postów: 36 482 Pomógł: 6303 Dołączył: 27.12.2004 |
Mnie tez porazily te STRINGi...
Osobiscie preferuje gdy metoda get sama sprawdza czy jest valid czy nie i gdy nie jest valid to albo zwraca null albo rzuca wyjatek Chyba bardziej powinienes uzywac tim() a nie czasu z $_SERVER -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
9.06.2016, 10:58:39
Post
#17
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
nospor
Tylko wtedy mamy 2 odpowiedzialności time() |
|
|
9.06.2016, 11:01:14
Post
#18
|
|
Grupa: Moderatorzy Postów: 36 482 Pomógł: 6303 Dołączył: 27.12.2004 |
tak, tak, time, szybko pisze bo jestem sledzony
I co z tego ze dwie? Nie popadajmy w skrajnosci. Osobiscie nie widze sprawdzania za kazdym razem czy jest valid czy nie. A co jak zapomne sprawdzic i uzyje tylko get? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
9.06.2016, 11:04:47
Post
#19
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
A i chodziło mi o konwencje nazywania plików
Owszem jest to problem, no to najwyżej dostaniesz nie spójne dane Owszem inaczej bym to rozwiązał, żeby sprawdzał tylko raz a nie za każdym razem, ale niekoniecznie w get |
|
|
9.06.2016, 11:05:25
Post
#20
|
|
Grupa: Moderatorzy Postów: 36 482 Pomógł: 6303 Dołączył: 27.12.2004 |
Cytat Owszem jest to problem, no to najwyżej dostaniesz nie spójne dane smile.gif i wlasnie temu get() powinno odwalac cala robote a nie ja mam sie jeszcze martwic. Nie lubie gdy jakies durne terorie utrudniaja mi zycie Ksar: raz piszesz self:: raz static:: zdecyduj sie na jedno i uzywaj a nie mieszasz bo oczaplasu idzie dostac -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
Wersja Lo-Fi | Aktualny czas: 16.06.2024 - 15:45 |