Cytat(marcio @ 2.11.2009, 15:01:14 )

Powtarzam jak bedzie to w modelu to bedzie zgodne.
Czyli możesz napisać wprost, że zgodne nie jest, bo autor w pierwszym poście pytał przecież:
Cytat(Fixus @ 2.11.2009, 11:03:06 )

Teraz czy jeżeli bezpośrodnie w tym obiekcie odwołam się do bazy będzie to zgodne z tym wzorcem projektowym? Czy trzeba odwołać się do modelu który połączy się z bazą i to pobierze ?
Ale wracając do Twojego ostatniego pytania, tak jak nie wprost powiedział kolega: Ze wzorcem MVC zgodne nie będzie. Najpoprawniej i najwydajniej byłoby tworzyć obiekty klasy Human z już istniejących, pobranych przez odpowiedni model danych. Tworzenie obiektu, który dane pobiera sobie indywidualnie przez różnorakie metody (chociaż konstruktor byłby bardzo odpowiedni) ma niewielką rację bytu i nie widzę większego sensu tworzenia takich elementów. Owszem, jako pytanie teoretycznie przykład dobry, ale uczulam na takie zagrania

. Widzę, że największe problemy masz ze zrozumieniem czym właściwie jest wzorzec MVC i jak go zastosować. Po krótce mogę powiedzieć Ci tylko tyle, że to obiekty będące Modelami powinny wykonywać wszelkie operacje we/wy na danych z zewnętrznych źródeł (tj. baza danych, plik etc) i dopiero same dane przekazywać poszczególnym, wyspecjalizowanym obiektom. Model działa tutaj jako pośrednik i chociaż składnię może mieć niewiele bardziej skomplikowaną od Twojego przykładu i na dobrą sprawę jest zupełnie zbędny (obiektowość też jest przecież zbędna) - ujednolica projekt i sprowadza do stosowania metod modelu zamiast każdorazowego operowania zapytaniami czy plikami. To tyle jeśli chodzi o sam model. Literatury elektronicznej o MVC google podpowie o wiele więcej niż jestem w stanie sobie wyobrazić - dlatego nie będę próbował się z Google siłować

.
Podsumowując: nawet jeśli przykład...
class Human {
public $id = 12345;
(...)
public function getHuman($id) {
$sql = "select * from tabela wher eid = 'id'";
return (...);
}
}
... nie jest poprawny, to ten już jest:
class PopulationModel {
public function getHumanById($id) {
$sql = "select * from tabela wher eid = 'id'";
return (...);
}
}
class Human {
public $id = 12345;
public function getHuman($id) {
$population = new PopulationModel();
return $population->getHumanById($this->id);
}
}
Nie skupiam się w tym momencie nad sensownością, ale zachowaniem funkcjonalności przy jednoczesnej zgodności z MVC.