Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 1.01.2016 Ostrzeżenie: (0%)
|
Czy moglibyście zapoznać się z moim kodem rejestracji i logowania użytkowników.
Po ostatniej wpadce ze stronką chciałbym zasięgnąć opinii bardziej doświadczonych programistów, a że nie mam kogo się poradzić pisze dlatego na tym forum. Oto kod:
Za ocenę dziękuję Ten post edytował huberthx 25.11.2019, 21:16:51 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%)
|
Popełniasz standardowy błąd początkujących. Opakowałeś strukturalny kod w klasę która niewiele ma wspólnego z programowanie obiektowym. Odpowiedzialność klasy: połączenie z bazą (fatalne jak już ci pisałem wcześniej), walidacja danych, funkcje widoku (echo kodu html), zarządzanie sesją. Poza tym mamy już czasy PHP7 - gdzie jakieś typowanie? Na początek poczytaj o dependency injection, PSR. Możesz to zrobić np:
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 1.01.2016 Ostrzeżenie: (0%)
|
Przepraszam że nie zakładam nowego tematu ale może w tym może być.
Czy mógłby ktoś polecić jakąś dobrą książkę o OOP-ie ? |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%)
|
książka niewiele Ci da. Podobnie jakbyś wpisał w google "php oop" to poczytasz o strukturze klas, ewentualnie jakieś proste przykłady w dupy. Cała sztuka nie polega na tym że napiszesz Class zamiast function, tylko na zmianie w sposobie myślenia o projektowaniu kodu oraz wykorzystaniu możliwości jakie dają Tobie obiekty. Tutaj trzeba sporego doświadczenia. Na początek na pewno poczytaj o dobrych praktykach (zacznij od SOLID) i staraj sie do nich stosować. W realizacji tych praktyk pomogą Tobie wzorce projektowe (przykładowy spis: https://lukasz-socha.pl/php/wzorce-projektowe-spis-tresci/). W pewnym momencie pomyślisz o testach jednostkowych i znowu odkryjesz że Twój kod powinien wyglądać jeszcze inaczej. Wypadałoby poznac standardy kodowania (PSR). Buszuj po githubie, analizuj kody innych, zacznij korzystać z frameworków. Tak jak wspomniałem wszystko to wymaga lat praktyki, stąd też stawki jakie zarabiają starsi programiści.
ps: pamiętaj przy tym że programowanie obiektowe to tylko jeden ze sposób na rozwiązanie danego zagadnienia, nie jest wcale powiedziane że takie podejście jest zawsze właściwe a nawet pożądane Ten post edytował gitbejbe 28.11.2019, 19:08:21 |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 1 884 Pomógł: 231 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%)
|
Dokładnie @gitbejbe ma rację przykłady z książek zwykle nie są życiowe, ale nie oznacza to że książka się nie przyda, teraz na HELION jest promocja 2 książki w cenie 1, więc warto np. wziąć książkę o Czystym Kodzie, RC Martin. Możesz wziąć drugą o PHP o wzorcach i obiektach, przynajmniej zakodujesz sobie podstawy, łatwiej zrozumieć także Githuba, dlaczego ludzie piszą tak a nie inaczej.
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 1.01.2016 Ostrzeżenie: (0%)
|
Poczytałem i oto wynik mojej nauki i prośba o ocenę.
Przepraszam za być może nieodpowiednie nazewnictwo metod bądź składowych Oto zarys kodu:
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%)
|
Podstawowe pytanie - po co ci ten singleton? Kod ogólnie dalej fatalny.
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 1.01.2016 Ostrzeżenie: (0%)
|
Pomijając ten singleton - co ogólnie znowu zepsułem ?
|
|
|
|
Post
#9
|
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 |
np to
Jaki tu sens w tym kodzie? Na dzien dobry masz zmienne $login i haslo, potem te zmienne ustawiasz set.... a potem je pobierasz get... i w rezultacie masz to co miales O te 4 linijki
Mozna wywalic bo nic nie wnosza do tej funkcji |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 1.01.2016 Ostrzeżenie: (0%)
|
Szczerze ja myślałem o tym żeby w metodach set była walidacja danych.
Przepraszam za to że nie podałem tego w kodzie - moje niedopatrzenie. |
|
|
|
![]() ![]() |
|
Aktualny czas: 6.11.2025 - 15:07 |