Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Klasa][PHP7] Cache
KsaR
post 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ą. biggrin.gif

Do oceny:
  • Użyteczność
  • Co można poprawić żeby sobie/innym życia nie skomplikować
  • Jakość kodu (ciągle uczę się nią polepszać)


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. tongue.gif

Ten post edytował KsaR 8.06.2016, 17:51:54


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
com
post 9.06.2016, 20:12:53
Post #2





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


Tylko że w systemie nie masz x instancji tego cache raczej, tylko jedną.

Cytat
Użyć setterów zamiast parametrów


Nie, parametry są lepsze, settery powinny zginąć. Obiekt cache to immutable, nie można zmieniać w czasie działania tego, bo można sobie narobić więcej problemów niż pożytku.
No chyba, że zrobimy tak jak w psr7 i będziemy zwracać nowy obiekt smile.gif
Dlatego też zrobiłem z tego static, ale nie testowałem i co słusznie zauważył nospor, zrobił się nam singleton.


I jak już to return; null tam jest nadmiarowy wink.gif

Na github twierdzisz ze jesteś za optymalizacja to czemu upierasz się nadal na te piramidę
  1. if (isset($path)) {
  2. if (!file_exists($path)) {
  3. throw new \Exception('Path:'."\r\n".$path."\r\n".'Doesn\'t exists.');
  4. }
  5. $this->path = $path;
  6. } else {
  7. throw new \Exception('Please specify path for cache.');
  8. }


KsaR

Widać brak Ci trochę podstaw, bo twojego konstruktora nie dało się wywołać inaczej niż z 3 parametrami, który w dodatku powinien być zgodny z typem wiec te questionmark.gif nawet nie miało sensu. Bo nawet wstawienie nulla wyrzuca błąd typu, jak już chcesz używać php7 to wypadało by trochę się z nim zaznajomić.

Dlatego chciałem go dodać w tym pull requescie i w końcu po poście Pyton_000 je tam ustawiłem.

Ten post edytował com 9.06.2016, 20:14:41
Go to the top of the page
+Quote Post
KsaR
post 9.06.2016, 20:48:00
Post #3





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

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


Cytat(com @ 9.06.2016, 21:12:53 ) *
Tylko że w systemie nie masz x instancji tego cache raczej, tylko jedną.

(...)

I jak już to return; null tam jest nadmiarowy wink.gif

Na github twierdzisz ze jesteś za optymalizacja to czemu upierasz się nadal na te piramidę
(...)
KsaR

Widać brak Ci trochę podstaw, bo twojego konstruktora nie dało się wywołać inaczej niż z 3 parametrami, który w dodatku powinien być zgodny z typem wiec te questionmark.gif nawet nie miało sensu. Bo nawet wstawienie nulla wyrzuca błąd typu, jak już chcesz używać php7 to wypadało by trochę się z nim zaznajomić.
(...)


Instancje mogą być różne...
$cacheMessages
$cacheNews
Da się oczywiście zrobić to 1 instancją ale po co ograniczać...
Rozdzielenie do różnych folderów to też „optymalizacja” zwłaszcza im więcej tam ląduje (np. 1+k)

Co do return; - zmienie

Jeśli chodzi o te if'y.
Ja wolę mieć 2 różne komunikaty (brak ścieżki, zła ścieżka) niż "brak lub zła ścieżka"
Takie coś to nie sądzę żeby bylo nawet makro-optymalizacją bo się założe że z 100* if...elseif będzie szybsze od 1. trim() czy explode()...
Takie coś to bardziej minifikacja. A tylko utrudni korzystnie wg. mnie (mniejsza o to - takie moje zdanie).

Co do parametrów. Podstawy mam raczej.
Pisałem wszystko na tablecie bez IDE typu "storm" tylko zwykłe podświetlanie składni które nawet błędów nie pokazuję, a w dodatku nie spałem. smile.gif

___
W wolnym czasie postaram się dodać to serializowanie. Zastnawiam się jak to najlepiej zrobić.
Ale gdy dodam to i tak będzie trzeba poprawić bo obstawiam że mam średni pomysł. tongue.gif


--------------------
Go to the top of the page
+Quote Post

Posty w temacie
- KsaR   [Klasa][PHP7] Cache   8.06.2016, 17:50:00
- - kapslokk   Przydała by się możliwość cachowania innych typów ...   8.06.2016, 18:19:32
- - Pyton_000   Kompresja gz. Do wywalenia. Jedynie spowalnia cało...   8.06.2016, 18:33:23
- - mrc   Więcej dokumentacji, niż właściwego kodu   8.06.2016, 18:53:58
|- - KsaR   Cytat(kapslokk @ 8.06.2016, 19:19:32 ...   8.06.2016, 19:44:54
- - mrc   Co do phpdoc dla metod: całkiem niepotrzebny jest ...   8.06.2016, 19:54:42
- - com   Dobre IDE podpowie, że typ się zmienił, a Storm uż...   8.06.2016, 23:22:44
|- - KsaR   Cytat(com @ 9.06.2016, 00:22:44 ) (.....   9.06.2016, 10:09:22
- - Pyton_000   Skoro mamy już $extension i $isCompresse...   9.06.2016, 07:13:13
- - com   Ok uwzględnię, zastanawiałem się nad tym   9.06.2016, 09:09:53
- - Pyton_000   http://www.php-fig.org/psr/psr-2/#2-5-keyw...true-...   9.06.2016, 10:19:35
|- - KsaR   Cytat(Pyton_000 @ 9.06.2016, 11:19:35...   9.06.2016, 10:26:48
- - Pyton_000   tak ale string, int, bool to też keywordsy więc do...   9.06.2016, 10:27:25
- - kapslokk   Poza tym upper case chyba zawsze był zarezerwowany...   9.06.2016, 10:34:48
- - com   https://github.com/php-fig/fig-standards/bl...-sty...   9.06.2016, 10:51:31
- - nospor   Mnie tez porazily te STRINGi... [PHP] pobierz, pl...   9.06.2016, 10:51:57
- - com   nospor Tylko wtedy mamy 2 odpowiedzialności tim...   9.06.2016, 10:58:39
- - nospor   tak, tak, time, szybko pisze bo jestem sledzony ...   9.06.2016, 11:01:14
- - com   A i chodziło mi o konwencje nazywania plików Ows...   9.06.2016, 11:04:47
- - nospor   CytatOwszem jest to problem, no to najwyżej dostan...   9.06.2016, 11:05:25
- - KsaR   Co do lowercase keyword, argument z https://github...   9.06.2016, 11:24:00
- - nospor   nie return false a return null   9.06.2016, 11:57:50
|- - KsaR   Cytat(nospor @ 9.06.2016, 12:57:50 ) ...   9.06.2016, 12:10:12
- - nospor   funkcja set powinna zwraca true lub false w zalezn...   9.06.2016, 12:17:45
|- - KsaR   Cytat(nospor @ 9.06.2016, 13:17:45 ) ...   9.06.2016, 12:23:47
- - Fred1485   Przepraszam, że się wtrącę Dlaczego zdecydowałeś...   9.06.2016, 12:23:51
|- - KsaR   Cytat(Fred1485 @ 9.06.2016, 13:23:51 ...   9.06.2016, 12:43:59
- - nospor   CytatCo do parametrów $useGZIP ma domyslnie f...   9.06.2016, 12:28:18
- - nospor   CytatAle static do tego żeby należały tylko do kla...   9.06.2016, 12:49:03
- - KsaR   Ok. Poprawiłem   9.06.2016, 13:01:51
- - viking   [PHP] pobierz, plaintext $c = new KsaRComponentsCa...   9.06.2016, 13:15:41
- - Pyton_000   A jak chcesz zmienić ext i nie gzipować to też źle...   9.06.2016, 13:36:21
- - nospor   Jeszcze taka pierda ale strasznie drazni oko: th...   9.06.2016, 14:44:36
- - viking   A jak już to raczej PHP_EOL   9.06.2016, 14:52:01
- - com   Tylko że w systemie nie masz x instancji tego cach...   9.06.2016, 20:12:53
|- - KsaR   Cytat(com @ 9.06.2016, 21:12:53 ) Tyl...   9.06.2016, 20:48:00
- - com   CytatInstancje mogą być różne... $cacheMessag...   9.06.2016, 21:17:49
- - KsaR   Ok. Dodałem tako-jako wsparcie dla tablic i obiekt...   9.06.2016, 22:29:02
- - com   Jasne https://kacper.gunia.me/ddd-building-blocks....   9.06.2016, 22:43:12
- - Pyton_000   Z tą piramidą chodziło o to że zamiast: Kod if ...   10.06.2016, 06:42:04
- - com   Jeśli już bardzo chcesz to typ jako stała, nigdy 0...   10.06.2016, 11:55:45
|- - KsaR   Cytat(com @ 10.06.2016, 12:55:45 ) Je...   10.06.2016, 22:25:14
- - com   Ale jako parametr ma być stała przekazywana równi...   11.06.2016, 16:42:31
- - LowiczakPL   Czy czasami nazwy stałych nie powinny być napisane...   11.06.2016, 17:52:30
- - com   Powinny Zgodnie z PSR, bo php dopuszcza, bo to t...   11.06.2016, 17:56:53
- - LowiczakPL   Dodatkowo dałbym strategię dla typów kesza, co zli...   11.06.2016, 18:13:03
- - com   Owszem można by zrobić fabrykę nawet I nie żadne...   11.06.2016, 18:31:33
|- - KsaR   Cytat(com @ 11.06.2016, 19:31:33 ) Ow...   11.06.2016, 18:41:33
- - com   chodzi o to, że tak jest poprawnie: throw new ...   11.06.2016, 18:49:38


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: 27.06.2025 - 05:23