Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [OOP-php] [ocena] moja pierwsza klasa w OOP
Forum PHP.pl > Inne > Oceny
Athlan
Klasa zlicza ile jest userów on-line. Opiera się na MySQL, w tabeli są przypisywane kolejno numery IP oraz czas wygaśnięcia sesji (time() + 180). Jak sesja kolesia się skończy, rekord zostaje usunięty i liczna online spada...

http://dyzio.nowiny.pl/bin/sources/online.class.txt

Jest to moja pierwsza klasa w php więc się nie śmaic dry.gif

Jak macie jakieś uwagi/sugestie (a takie będą bo noobie w OOP - 1 klasa blink.gif ) to pisać smile.gif

oceniać cool.gif
nospor
Do oceny mamy forum oceny. Przenosze
bigZbig
Deklarujac wlasciwosci klasy w PHP5 nie uzywa sie slowa var tylko, podobnie jak w przypadku metod, nazwy wlasciwosci poprzedza sie slowami public, private lub protected.

Metody, ktore nie korzystaja z wlasciwosi obiektu i maja charakter publiczny, jak np encodeIP i getIP zrob najlepiej statycznymi.

Nazwy klas pisane sa zwykle wielkimi literami. Poczytaj tez na temat phpDocumentatora i komentowania kodu. To tylko szczegol, ale podawanie w komentarzu nazwy metody bezposrednio nad nia jest niepotrzebne.

To tyle na poczatek
Athlan
Dobrze @bigZbig, zastosowałeś się do Twoich uwag smile.gif

choć metodę getIP() pozostawie publiczną, bo może ona zostac wykorzystana nie tylko w klasie... taki mam zamiar

Dzięki za uwagi... script updated: http://dyzio.nowiny.pl/bin/sources/online.class.txt

prosze o kolejne uwagi/porady

btw: jak na 1 raz to dobrze? tongue.gif
nospor
Cytat
choć metodę getIP() pozostawie publiczną, bo może ona zostac wykorzystana nie tylko w klasie... taki mam zamiar
No i wlasnie dlatego powinna byc statyczna.

Cytat
Dobrze @bigZbig, zastosowałeś się do Twoich uwag
Albo sciemniasz, albo podales zly link, bo ja nie widze abys cos dostoswal sie do uwag bigZbiga. Na czym polegalo Twoje dostosowanie sie?

edit: choc moze kluczem do zagatki jest to slowo: "zastosowałeś" no tak, bigZbig sam sie dostosowal do swoich uwag smile.gif
Athlan
Cytat
No i wlasnie dlatego powinna byc statyczna.

dobra poprawiłem...
Cytat
Albo sciemniasz, albo podales zly link, bo ja nie widze abys cos dostoswal sie do uwag bigZbiga.

nie widzisz?
- poprawiłem deklarację zmiennych na początku (dodalem private)
- z opisów usunąłem nazwy funkcji (fakt... po co to)
- static function encodeIP()
- class ONLINE - nazwa klasy z wielkich liter
- no i teraz dałe static na getIP()

@nospor - możliwe że patrzyles na klasę wcześniej i nie odświeżyłeś strony jak ja zobaczyłeś po raz drugi (cache)... wyczyść sobie cache i daj f5 albo wejdź z np badzIEwia (lol) a potem na mnie krzycz bo mi się smutno zrobiło sad.gif

pozdro smile.gif
Diwi
Cytat
- class ONLINE - nazwa klasy z wielkich liter


Tu nie chodzi o to aby cała nazwa była z wielkich liter tylko aby pierwsza litera była duża smile.gif

Pozdrawiam
nospor
Cytat
@nospor - możliwe że patrzyles na klasę wcześniej i nie odświeżyłeś strony jak ja zobaczyłeś po raz drugi (cache)... wyczyść sobie cache i daj f5 albo wejdź z np badzIEwia (lol) a potem na mnie krzycz bo mi się smutno zrobiło
cache czyscilem (sprawdzalem nawet), badziewia nie mam zamiaru uzywac bo to badziewie, krzyczec nie krzyczalem wiec przykro niech ci sie nie robi. Grzecznie zapytalem tylko smile.gif
Podsumowujac: teraz widze zmiany, wtedy ich nie widzialem. Z poprawek o jakich wspomnial bigZbig brakuje jeszcze wlasiwych komentarzy na wzor phpDoc. Te Twoje dziwnie sie czyta jak sie czlowiek przyzwyczail juz do standardu smile.gif
Ludvik
Pierwsze, co mi się rzuciło w oczy, to komentarze. PHPDoc jest najlepszy rozwiązaniem, opanowanie go nie powinno stanowić większego problemu. Poza tym opisujesz typy zwracane przez php nazwami typów SQL. Bardzo chaotycznie...

Poza tym duuuużo zapytań. Zamiast sprawdzać jednym zapytaniem, a potem wywoływać UPDATE, możesz w MySQL posłużyć się REPLACE. Jest to rozszerzenie standardu, ale jeżeli trzymasz się tylko MySQL, to nie zaszkodzi z niego skorzystać.

W funkcji getIp() posłużyłeś się skrótowym zapisem wyrażenia warunkowego, który u Ciebie wcale niczego nie skraca i jest nieczytelny.

Do metod publicznych też warto wyrobić sobie dobry nawyk dopisywania modyfikatora public.

Z błędami radzisz sobie raczej tak, jak robi się to przy programowaniu strukturalnym. Wyjątki są lepszym narzędziem.

Trochę jeszcze do nauki masz, ale nie jest najgorzej.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.