Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klasa związana z bazą danych - do czego użyć konstruktora?
Forum PHP.pl > Forum > PHP > Object-oriented programming
express
Pytanie może trywialne, ale nie mogę się sam przekonac do żadnej opcji. Może to pytanie o dobre praktyki, wynikające z braku doświadczenia? Sam nie wiem.

Piszę klasę. Dla uproszczenia przyjmijmy, że tworzę system newsów - jak to mniej więcej działa każdy wie, więc to niezłe przybliżenie.
Obiektem klasy ma byc news - ma swojego autora, datę publikacji, tytuł treść... Może być napisany, wyświetlony, zmieniony, usunięty. Proste.
Właściwości obiektu są ściśle powiązane z rekordem w tablece bazy danych.
Co waszym zdaniem powinien robić konstruktor?
1) może stworzyć nowego newsa - nowy rekord w bazie po podaniu odpowiednich danych, lub stworzyć obiekt i czekać na resztę danych aby zapisać go w bazie (ta różnica jest a razie nieistotna)
2) lub też może stworzyć obiekt o dostarczonym konstruktorowi ID poprzez wyciągnięcie danych z bazy

Obie funkcje są potrzebne, i wydaje mi się, że każda z nich jest poprawna - bo każda tworzy rzeczywiście nowy obiekt - z punktu widzenia skryptu.

Teraz - jeśli konstruktor bedzie służył uwtorzeniu (opcja 1) nowego nwsa, nowego rekordu, to jak używać newsów już zapisanych w bazie? A jeśli zastosuję opcję 2 - jak dodać całkiem nowego newsa?

Robienie takich ifów w konstruktorze wydaje mi się pokraczne.



Pytanie dodatkowe: w powyższym przypadku, żeby wyświetlić listę newsów na stronie, pobranie ich listy z bazy za pomocą metody statycznej będzie po bożemu, czy są na to jakieś inne, mądre sposoby?
aniolekx
jezeli mowisz o Encji, to Encja nie powinna nic wiedziec o zadnej bazie danych
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.