• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pytanie odnośnie tworzenia aplikacji. Obiektowe podejście.

Object Storage Arubacloud
0 głosów
134 wizyt
pytanie zadane 22 lutego 2022 w PHP przez Lid$ Mądrala (6,300 p.)
Hej. Mam taką zagwozdkę. Zastanawiam się nad projektem obiektu do tworzenia wiersza z informacjami. Teraz mam go tak zaprojektowanego, że pierw wydobywam dane z bazy danych, przekazuje je do obiektu i wtedy on zwraca mi przetworzony wynik jaki chcę uzyskać. Taka zasada działania komplikuje mi sytuację przy przebudowie ponieważ we wszystkich plikach które używają obiektu muszę odpowiednie dane podawać i odpowiednio modyfikować co jest uciążliwe. Ze względu na to rozmyślam o przebudowie. I mam takie pytanie: czy dobrą praktyką jest aby wszystko to działo się w tym danym obiekcie - połączenie z bazą danych, przetworzenie wszystkich informacji, zwrócenie pożądanego wyniku za pomocą np tylko podania identyfikatora rekordu lub określonego zapytania? I czy osobiste połączenie danego obiektu z bazą nie jest mało wydajne?

1 odpowiedź

+1 głos
odpowiedź 22 lutego 2022 przez Comandeer Guru (601,590 p.)
wybrane 23 lutego 2022 przez Lid$
 
Najlepsza

Raczej połączenie z bazą powinno być jedno, co najwyżej przekazywane do innych klas przy pomocy mechanizmu dependency injection.

Nie wiem dokładnie, co Twój obiekt robi, ale zastanawia mnie, czemu jest używany w kilku różnych miejscach i czemu jakaś zmiana w sposobie wyciągania danych pociąga za sobą zmiany w tym obiekcie. Brzmi jak trochę zły podział odpowiedzialności w aplikacji. Ale trudno coś powiedzieć, bez konkretnego przykładu.

komentarz 22 lutego 2022 przez Lid$ Mądrala (6,300 p.)
Poprawka: dane są przekazywane do metody obiektu. I jeśli jest więcej wierszy do wyświetlenia to mam pętle, która każdorazowo podaje dane do tej metody i zwraca kod html, który później wyświetlany jest użytkownikowi. No i połączenie jest teraz w pliku głównym wykonane jeden raz. I teraz zastanawiam się czy dobrze to zrobiłem i czy nie powinienem jednak w tej metodzie tego wszystkiego wykonać a do niej podawać tylko te ID albo konkretny rodzaj zapytania, który zwraca kontretne wyniki.

Możliwe, że źle w ogóle wykorzystuje obiekty i metody, bo w sumie w klasie nie mam jakichś podstawowych danych, które zawsze są takie same. Może powinienem zamienić to na zwykłe funkcje, które w sumie działają tak samo w tym przypadku.
komentarz 23 lutego 2022 przez Lid$ Mądrala (6,300 p.)
Mam metodę, której chcę użyć przy dodawaniu danych do bazy, przy edycji i przy wyświetlaniu, ponieważ ta metoda wykonuje jeden element zawsze taki sam, dodaje elementy html. No ale przez to, że w każdym pliku z tych trzech musiałbym to zmienić przy rozbudowie aplikacji stwierdziłem, że muszę to jakoś inaczej przeprojektować abym musiał edytować tylko jedną metodę. Ale wiąże się to aby ta metoda miała osobne połączenie i obawiam się że to jest mało wydajne i niepoprawne.
1
komentarz 23 lutego 2022 przez Comandeer Guru (601,590 p.)
Jeśli to jest metoda, która służy do generowania odpowiedniego wynikowego HTML-a, to IMO to powinno być robione w widoku, przy pomocy jakiegoś systemu szablonów. Wówczas w danym miejscu importujesz konkretny szablon, a dane są po prostu do niego przekazywane.
komentarz 23 lutego 2022 przez Lid$ Mądrala (6,300 p.)

dependency injection Raczej w jakimś stopniu używam, bo jeden obiekt składa się z innych obiektów z tego co rozumiem. Aczkolwiek temat rzeka i pewnie wiele jeszcze nie wiem. Poczytam sobie.

komentarz 23 lutego 2022 przez Ehlert Ekspert (212,670 p.)
Pokaż kod najlepiej
komentarz 23 lutego 2022 przez Lid$ Mądrala (6,300 p.)

@Comandeer,    "Wówczas w danym miejscu importujesz konkretny szablon, a dane są po prostu do niego przekazywane. " - za pomocą na przykład "preg_replace"? Czy są jakieś dedykowane rozwiązania do takich czynności?

Mam plik z kodem html "<div>tuwpiszwartosc</div>"

i preg_replace podmieniam sobie ten tekst na "<div>Tytuł</div>"

Czy są jakieś lepsze sposoby?

komentarz 23 lutego 2022 przez Lid$ Mądrala (6,300 p.)
" to powinno być robione w widoku " - w widoku? W sensie publicznie za pomocą js czy coś? Bo nie rozumiem.
1
komentarz 23 lutego 2022 przez Comandeer Guru (601,590 p.)

Czy są jakieś dedykowane rozwiązania do takich czynności?

Tak, np. Twig.

" to powinno być robione w widoku " - w widoku? W sensie publicznie za pomocą js czy coś? Bo nie rozumiem.

Widok, czyli ta część aplikacji, która odpowiada za generowanie interfejsu użytkownika. 

Podobne pytania

0 głosów
1 odpowiedź 432 wizyt
0 głosów
1 odpowiedź 276 wizyt
pytanie zadane 6 lipca 2018 w JavaScript przez Mebya Użytkownik (700 p.)
–1 głos
1 odpowiedź 362 wizyt
pytanie zadane 1 lipca 2016 w C i C++ przez DragonCoder Nałogowiec (36,500 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...