Temat: OOP - te same pole kilku obiektów
Na dobrą sprawę najlepiej by je było gdzieś "zarejestrować". Coś w tym stylu:
class CommonData {
protected $objects = array();
public function register(Object $Obj) {
$this->objects[] = $Obj;
}
public function getErrors() {
$errors = array();
foreach($this->objects as $Obj) {
if(!property_exists(get_class($Obj), 'error')) { continue; }
$errors[] = $Obj->error;
}
return $errors;
}
}
Klasa ma o tyle sens że zarejestrujesz w niej co chcesz ale zwróci tablicę "błędów" tylko z tych które mają atrybut error.
Taki przykład. Inna możliwość (chyba nawet prostsza) to jakaś tablica statyczna która by przechowywała poszczególne errory + wygenerowany w konstruktorze identyfikator instancji klasy która posłuży jako klucz. To przykład z życia wzięty (tzn widziałem coś takiego w działaniu). Ale sam staram się unikać sytuacji gdy jeden obiekt wpływa na drugi. Zwłaszcza kiedy to nie jest do niczego potrzebne jak zapewne w tym wypadku.
Dariusz Półtorak edytował(a) ten post dnia 16.12.11 o godzinie 11:28