![]() ![]() |
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ą. (IMG:style_emoticons/default/biggrin.gif) 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. (IMG:style_emoticons/default/tongue.gif) Ten post edytował KsaR 8.06.2016, 17:51:54 |
|
|
|
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. ;]
|
|
|
|
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ść.
|
|
|
|
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 (IMG:style_emoticons/default/biggrin.gif)
|
|
|
|
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ć. (IMG:style_emoticons/default/tongue.gif) 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 (IMG:style_emoticons/default/biggrin.gif) Przecież jest napisane "... prostą", ważne że robi swoje. (IMG:style_emoticons/default/tongue.gif) |
|
|
|
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 |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 3 034 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 (IMG:style_emoticons/default/smile.gif) komentarze to nie
tylko
No i czemu taka archaiczna konwencja nazewnictwa? Gdzie PSR Nazywaj jakoś sensownie te commity (IMG:style_emoticons/default/wink.gif) 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 (IMG:style_emoticons/default/wink.gif) 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 (IMG:style_emoticons/default/questionmark.gif) 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 (IMG:style_emoticons/default/wink.gif) Ten post edytował com 8.06.2016, 20:58:01 |
|
|
|
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"
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
Ok uwzględnię, zastanawiałem się nad tym (IMG:style_emoticons/default/smile.gif)
|
|
|
|
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 (IMG:style_emoticons/default/wink.gif) 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. |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
|
|
|
|
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 |
|
|
|
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ął
|
|
|
|
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 (IMG:style_emoticons/default/tongue.gif)
|
|
|
|
Post
#15
|
|
|
Grupa: Zarejestrowani Postów: 3 034 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 (IMG:style_emoticons/default/wink.gif) 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 (IMG:style_emoticons/default/smile.gif) Ten post edytował com 9.06.2016, 10:47:59 |
|
|
|
Post
#16
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 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 |
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
nospor
Tylko wtedy mamy 2 odpowiedzialności (IMG:style_emoticons/default/wink.gif) time() (IMG:style_emoticons/default/biggrin.gif) |
|
|
|
Post
#18
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
tak, tak, time, szybko pisze bo jestem sledzony (IMG:style_emoticons/default/wink.gif)
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? |
|
|
|
Post
#19
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
A i chodziło mi o konwencje nazywania plików (IMG:style_emoticons/default/wink.gif)
Owszem jest to problem, no to najwyżej dostaniesz nie spójne dane (IMG:style_emoticons/default/smile.gif) Owszem inaczej bym to rozwiązał, żeby sprawdzał tylko raz a nie za każdym razem, ale niekoniecznie w get (IMG:style_emoticons/default/smile.gif) |
|
|
|
Post
#20
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 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 (IMG:style_emoticons/default/wink.gif) Ksar: raz piszesz self:: raz static:: zdecyduj sie na jedno i uzywaj a nie mieszasz bo oczaplasu idzie dostac |
|
|
|
Post
#21
|
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%)
|
Co do lowercase keyword, argument z
https://github.com/php-fig/fig-standards/bl...-style-guide.md Mnie przekonał i zmieniłem. Co do time()... zanim dodałem na GH tak miałem jednak pomyślałem że rzadko kiedy skrypt się sekundę wykonuję lub więcej ale się zdarza więc poprawiłem. Co do self va static, przeoczenie i poprawiłem na self - wg. Mnie lepiej żeby z glownej klasy pobieralo; Co do valid w get. Coś zaraz poprawie. @edit - poprawiłem. Ten post edytował KsaR 9.06.2016, 11:37:49 |
|
|
|
Post
#22
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
nie
return false a return null |
|
|
|
Post
#23
|
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%)
|
nie return false a return null Dodał byś jakieś argumenty za i przeciw? W mojej opinii: Null = 0 = zapelnienie pustego miejsca w matematyce. ( https://pl.m.wikipedia.org/wiki/0_(liczba) ) = "Cache nie zwróciło nic". False = fałsz = "cache jest niepoprawne", "nieaktualne". |
|
|
|
Post
#24
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
funkcja set powinna zwraca true lub false w zaleznosci czy sie udalo czy nie.
W sumie w czasie wyjatkow powinna rzucac wyjatkiem gdy nie udalo null vs false jak slusznie zauwazyles false gdy jest blad. Moim zdaniem nieaktualny cache nie jest bledem a poprostu brakiem danych czyli null. Rownie dobrze moze tam jeszcze nic nie byc (null) jak i byc przeterminowane (rowniez null) parametry konstruktora string $ext, bool $useGZIP powinny miec domyslna wartosc, skoro tak czy siak potem je ustawiasz na domyslne gdy sa null. dzieki temu wywolujac konstruktor nie musze na sile wstawiac nulli |
|
|
|
Post
#25
|
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%)
|
funkcja set powinna zwraca true lub false w zaleznosci czy sie udalo czy nie. W sumie w czasie wyjatkow powinna rzucac wyjatkiem gdy nie udalo null vs false jak slusznie zauwazyles false gdy jest blad. Moim zdaniem nieaktualny cache nie jest bledem a poprostu brakiem danych czyli null. Rownie dobrze moze tam jeszcze nic nie byc (null) jak i byc przeterminowane (rowniez null) parametry konstruktora string $ext, bool $useGZIP powinny miec domyslna wartosc, skoro tak czy siak potem je ustawiasz na domyslne gdy sa null. dzieki temu wywolujac konstruktor nie musze na sile wstawiac nulli Ok - zaraz poprawie na null. Co do parametrów $useGZIP ma domyslnie false. ...i w konstruktorze jest:
Czyli domyslnie useGZIP zostanie na false; A $extension bedzie na '.txt' gdy się nie poda, lub ".gz" gdy się włączy kompresję. |
|
|
|
Post
#26
|
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 22 Dołączył: 10.02.2015 Ostrzeżenie: (0%)
|
Przepraszam, że się wtrącę (IMG:style_emoticons/default/smile.gif) Dlaczego zdecydowałeś/zdecydowaliście, aby właściwości były statyczne?
Ten post edytował Fred1485 9.06.2016, 12:24:40 |
|
|
|
Post
#27
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Cytat Co do parametrów $useGZIP ma domyslnie false. Ja mowie o parametrach konstruktorateraz masz: public function __construct(string $path, string $ext, bool $useGZIP) przez co wymuszasz na mnie ustawienie wszystkich trzech parametrow. powinno byc: public function __construct(string $path, string $ext='.txt', bool $useGZIP=false) przez co nie musze ustawiac dwoch ostatnich jesli chce by byly domyslne Cytat Przepraszam, że się wtrącę smile.gif Dlaczego zdecydowałeś/zdecydowaliście, aby właściwości były statyczne? Sluszna uwaga.Niczemu to tutaj nie sluzy bo i tak jest private
|
|
|
|
Post
#28
|
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%)
|
Przepraszam, że się wtrącę (IMG:style_emoticons/default/smile.gif) Dlaczego zdecydowałeś/zdecydowaliście, aby właściwości były statyczne? Co prawda private (więc w dziedziczeniu nie będą dostępne) Ale static do tego żeby należały tylko do klasy, a do obiektu już nie... Ten post edytował KsaR 9.06.2016, 12:46:27 |
|
|
|
Post
#29
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Cytat Ale static do tego żeby należały tylko do klasy, a do obiektu już nie... My wiemy do czego sluzy static i nie musisz nam tego wyjasniac (IMG:style_emoticons/default/wink.gif) Ok, prosta sytuacja: tworzysz dwa obiekty cache: $cache1 = new Cache('cache/', '.cache', true); $cache2 = new Cache('cacheinnasciezka/', '.cache', true); a teraz robisz save w cache1 $cache1->set() hm... ciekawe gdzie sie zapisza dane z cache1 (IMG:style_emoticons/default/wink.gif) |
|
|
|
Post
#30
|
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%)
|
Ok. Poprawiłem (IMG:style_emoticons/default/biggrin.gif)
|
|
|
|
Post
#31
|
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%)
|
Dodaj jakąś serializację i zrób tam tablice i inne czyli rzeczy które się w cache trzyma na codzień. Chyba nikt nie przechowuje samych stringów. Do tego nie informujesz czy się zapis udał czy nie. Zamieniłbym też kolejność na $path, $useGzip, $ext bo teraz jeśli chcę gzipować muszę podawać rozszerzenie które w dodatku nie będzie uwzględnione. Ten post edytował viking 9.06.2016, 13:37:04 |
|
|
|
Post
#32
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
A jak chcesz zmienić ext i nie gzipować to też źle (IMG:style_emoticons/default/wink.gif)
Użyć setterów zamiast parametrów |
|
|
|
Post
#33
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Jeszcze taka pierda ale strasznie drazni oko:
throw new \Exception('Path:'."\r\n".$path."\r\n".'Doesn\'t exists.'); nawaliles tych apostrofow i cudzyslowiow bez sensu... throw new \Exception("Path:\r\n $path \r\nDoesn't exists."); prawda ze lepiej? Poza tym nowa linia to \n w cywilizowanym swiecie. zapomnij o windowsowych nawykach. Pozatym srodka zdania nie zaczyna sie od duzej litery i poza tym nowe linie tam sa totalnie bez sensu wiec: throw new \Exception("Path '$path' doesn't exist."); Jesli masz does to juz nie dajesz 's' na koncu czasownika |
|
|
|
Post
#34
|
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%)
|
A jak już to raczej PHP_EOL
|
|
|
|
Post
#35
|
|
|
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 (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/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 |
|
|
|
Post
#36
|
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%)
|
Tylko że w systemie nie masz x instancji tego cache raczej, tylko jedną. (...) I jak już to return; null tam jest nadmiarowy (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/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. (IMG:style_emoticons/default/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ł. (IMG:style_emoticons/default/tongue.gif) |
|
|
|
Post
#37
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
Cytat 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) Owszem ma to sens (IMG:style_emoticons/default/smile.gif) Ale mój komunikat był inny (IMG:style_emoticons/default/wink.gif) a jak tak chcesz to wydzieliłbym path i tak jak mówiłem zrobił z tego VO (IMG:style_emoticons/default/smile.gif) Nie chodzi o IDE, tylko o sam fakt iż nie ważne w jakim języku jak nie podasz wartości domyślnych to parametry trzeba podać, no a jak sprawdzasz ich typ to on musi się zgadzać, wiec nie przejdzie tam cokolwiek, jak w php5 (IMG:style_emoticons/default/smile.gif) Ten post edytował com 9.06.2016, 21:37:35 |
|
|
|
Post
#38
|
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%)
|
Ok. Dodałem tako-jako wsparcie dla tablic i obiektów.
Zmieniłem kolejność parametrów konstruktora. W exception zmienilem "\r\n" na PHP_EOL. Co tam jeszcze miałem? Z tym Angielskim coś ale jak konkretnie? (IMG:style_emoticons/default/tongue.gif) __ +++ Ponownie zapraszam do oceny, propozycji, testów itp. __ Ps. @com, co to jest to "VO"? Bo nie rozumiem.. zarzucisz przykładem? __ Ps2. set() zwraca teraz to co file_put_contents(). Nie wiem czy o to wam chodziło ; Ten post edytował KsaR 9.06.2016, 22:41:00 |
|
|
|
Post
#39
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#40
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
Z tą piramidą chodziło o to że zamiast:
Kod if (isset($path)) { if (!file_exists($path)) { throw new \Exception('Path:'.PHP_EOL.$path.PHP_EOL.'Doesn\'t exists.'); } $this->path = $path; } else { throw new \Exception('Please specify path for cache.'); } pisze się: Kod if(!isset($path)) { throw new \Exception('Please specify path for cache.'); } if (!file_exists($path)) { throw new \Exception('Path:'.PHP_EOL.$path.PHP_EOL.'Doesn\'t exists.'); } $this->path = $path; Prawda że czytelniej? (IMG:style_emoticons/default/smile.gif) Co do serializacji albo musisz serializować wszystko albo nic (IMG:style_emoticons/default/smile.gif) Możesz serializować tylko obiekty ale musisz wtedy użyć regexp żeby wykryć co ma być deserializowane. WP ma fajnego regexpa na to, używałem. Ten post edytował Pyton_000 10.06.2016, 06:52:15 |
|
|
|
Post
#41
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
Jeśli już bardzo chcesz to typ jako stała, nigdy 0,1 (IMG:style_emoticons/default/wink.gif)
|
|
|
|
Post
#42
|
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%)
|
Jeśli już bardzo chcesz to typ jako stała, nigdy 0,1 (IMG:style_emoticons/default/wink.gif) Pozostałość po testach (IMG:style_emoticons/default/biggrin.gif) , Już poprawiłem. PPs. Co do "VO" Czyli mam zrobić oddzielną klasę do validacji oraz zwracania ścieżki i tam zrobić coś jak w Cache "fullPath()"? |
|
|
|
Post
#43
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
Ale jako parametr ma być stała przekazywana również i no ostatecznie mogło by tak też być (IMG:style_emoticons/default/wink.gif)
|
|
|
|
Post
#44
|
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%)
|
Czy czasami nazwy stałych nie powinny być napisane drukowanymi literami?
http://php.net/manual/en/language.oop5.constants.php |
|
|
|
Post
#45
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
Powinny (IMG:style_emoticons/default/smile.gif)
Zgodnie z PSR, bo php dopuszcza, bo to tylko konwencja (IMG:style_emoticons/default/smile.gif) |
|
|
|
Post
#46
|
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%)
|
Dodatkowo dałbym strategię dla typów kesza, co zlikwidowało by IF-y,
zamiast liczbowej nazwy typu przekazywał bym nazwę strategii. |
|
|
|
Post
#47
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
Owszem można by zrobić fabrykę nawet (IMG:style_emoticons/default/wink.gif)
I nie żadnego elseif
Dlaczego jesteś taki uparty, skoro Pyton_000 napisał tak
I co to wgl za „ ” są (IMG:style_emoticons/default/ohmy.gif) pomijając to że nie stosujesz się do tego co pisał nospor apropo poprawności komunikatu (IMG:style_emoticons/default/wink.gif) a sam path jako byt, to nie Domain (IMG:style_emoticons/default/wink.gif) |
|
|
|
Post
#48
|
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%)
|
Owszem można by zrobić fabrykę nawet (IMG:style_emoticons/default/wink.gif) I nie żadnego elseif (...) I co to wgl za „ ” są (IMG:style_emoticons/default/ohmy.gif) pomijając to że nie stosujesz się do tego co pisał nospor apropo poprawności komunikatu (IMG:style_emoticons/default/wink.gif) a sam path jako byt, to nie Domain (IMG:style_emoticons/default/wink.gif) * Co do strategy, factory - nie widzę takiej potrzeby dla takiej mikro-klasy. * Poprawie. * Cudzysłowia. (IMG:style_emoticons/default/biggrin.gif) * Jak mam się stosować do czegoś czego nie rozumiem ? * Zmienie na Exception. ;d |
|
|
|
Post
#49
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
chodzi o to, że tak jest poprawnie:
throw new \Exception("Path '$path' doesn't exist."); No albo się pisze czysty kod albo ma byle polska nie zginęła (IMG:style_emoticons/default/tongue.gif) Nie stosował bym egzotycznych znaczków bo rożnie mogą to przeglądarki interpretować, poza tym to tylko błąd, poco jakieś eksperymenty bo można (IMG:style_emoticons/default/smile.gif) Co do stałych jeszcze bym się zastanowił czy ten zwrot jako jest nam potrzebny (IMG:style_emoticons/default/smile.gif) |
|
|
|
![]() ![]() |
|
Aktualny czas: 26.12.2025 - 07:25 |