staram sie ostatnio pisac bardziej obiektowo, czytam ksiazki, tutoriale itd ale mam kilka watpliwosci i sprzecznych informacji i przydaloby mi sie troche rady bardziej doswiadczonego programisty. mianowicie:
1. rozumiem ze metody do ktorych odwoluje sie w postaci :: to metody klas ktore nie wymagaja tworzenia obiektu. czy np majac za zadanie dajmy na to usuniecie z bazy zdjecia ktore user ma w galerii, zmiana zdjecia glownego czy jakies inne operacje moge po prostu w funkcji miec User::setProfilePhoto($userid, $photoid) czy lepiej tworyc usera przez new i uzywac $user->setProfilePhoto();
2. ogolnie nie bardzo rozumiem kiedy tworzyc nowy obiekt i wykonywac na nim jakies operacje, a kiedy robic cos wlasnie przy pomocy tego sposobu z ::. prosilbym o jakies lopatologiczne wyjasnienie bo jest na razie dla mnie plynne i czasem nie czuje roznicy.
3. duzo tutoriali mowi o uzywaniu getCostam i setCostam, aby pobierac i ustawiac parametry obiektu, aby nie stosowac w skrypcie $user->name = 'Zenon'; ten sposob jest bardziej elegencki i bezpieczny... ale tak sobie mysle ze mam np zmiane danych usera, ktory ma kilkanascie, czy dziesiat jakichs parametrow (imie, nazwisko, plec itd) i mam za kazdym razem uzywac tych funkcji? patrze na jakies projekty open source i tam bez kozery uzywaja bezposredniego przypisania parametrow i nie korzystaja z tych getow i setow. ktora szkola jest odpowiednia? a moze wszystko zalezy od projektu, jesli tak to od czego dokladnie?
4. i konkretny przyklad, ktory w zasadzie jest podsumowanie powyzszych pytan. mam update danych usera. dane leca sobie postem, miele je w jakiejs funkcji validujacej, potem uruchamiam funkcje ktora robi update. i co dalej w tej funkcji?
a) stworzenie obiektu $user przez new, przypisanie wszystkich parametrow z $_POSTa (przez set czy po prostu $user->name = 'Zenon'?) i potem $user->update() gdzie juz w klasie dokonuje sie tylko update?
b) czy moze po prostu w funkcji jakies User::update() i w klasie korzystajac z $this podpiecie wszystkiego z $_POSTa do obiektu i tam update do bazy.
c) jakis inny sposob?
pytania troche zakrecone ale nie daja mi spac i bede dzwieczny za wszelka pomoc kogos okielznanego w tym temacie :)