![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 1 Dołączył: 26.08.2009 Skąd: Szczecin Ostrzeżenie: (10%) ![]() ![]() |
Witam,
Pisze właśnie klasę obsługującą konta użytkowników w serwisie. Generalnie każdy użytkownik jest wpisywany do trzech różnych tabel - jedna to ogólnie login, mail itp; druga to dane adresowe; a trzecia dane dotyczące blokad, pochwal itp. Teraz się zastanawiam, jak będzie lepiej napisać metody edytujące różne dane z tych tabel. Czy lepiej jest napisać parę "wyspecjalizowanych" metod, gdzie każda odpowiada za góra dwie-trzy komórki z jednej tabeli, czy np. jedną duża i ogólna metodę odpowiadającą za wszystko. Zaznaczam też, że nie wszystkie pola będą edytowane tak samo często jak pozostałe. Macie jakieś porady, czy to nie ma większego znaczenia? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 6.09.2011 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Chyba do końca mnie nie zrozumiałeś "bastard13".
Po pierwsze, pisząc własną klasę (jak to ją nazwałeś MyMySQLi) masz gotowe narzędzie do wykonywania i obsługi zapytań na bazie funkcji php'owych. (W końcu coś musi sprawdzić czy połączyłeś się z bazą, wykonałeś zapytanie poprawnie etc). I lepiej to zrobić raz w klasie niż kilkaset razy w różnych plikach. To jest podejście OOP. I utrzymanie takiej klasy jest łatwiejsze, a obudowujesz taką klasę tym, co uważasz za niezbędne i wykorzystasz w projekcie. Napisaną bibliotekę MyMySQLi należy wykorzystać w klasie Users, a nie samych plikach (kontrolerach). Wtedy wywołanie metody $user->saveData($data)->save() wywoła wewnątrz tej metody naszą metodę MyMySQLi::update($data). I wtedy jest to bardzo czytelne i umożliwia dodawanie/edycję w przyszłości metod obu klas, bez konieczności zmiany ich wywołania lub parametrów. Poza tym komentarze i dokumentacja to niezbędny w takich projektach czynnik do zrozumienia kodu. Raz napisany dobrze komentarz w klasie MyMySQLi i metodzie update() zawsze Ci wyjaśni, o co tak na prawdę chodzi. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 21:58 |