
Sytuacja:
Klasa ActiveRecord to klasa odpowiedzialna za kontakt z bazą danych (cos ala propel czy pear::DataObject)
klasy doc, news, product, user ect ect to klasy dziedziczące po ActiveRecord. W ten sposob udostępniam sobie łatwy dostęp do danych w bazie i modyfikację (update()). Jedziemy na php 4.4
Problem jest następnujący.
Duza ilość klas (na umlu przedstawiłem dwie - doc, news) posiada podobne właściwosci np. CreatedBy. Postanowiłem przenieść ten element o poziom wyżej. W ten sposob powstała klasa model_abstract_datetimeable (oznaczam ze odnosi się do modeli. doc, news itd, abstract oznacza ze nie moze byc uzywana sama, no i sam opis działania). W php nie mozemy dziedziczyć podwójnie tak więc w tym momencie model_abstract_datetimeable dziedziczy po activerecord, a doc po model_abstract_datetimeable. I jest w porządku (pomijając ułomności w wykonywaniu konstruktorów itp.). Problem pojawia się w momencie gdy chcialbym zeby doc, news itp były tez accesable, tzn posiadały metodę do sprawdzania dostępu do danego obiektu (system tak skonstruowałem, ze metoda jest zawsze taka sama). Aktualnie kod przeklejam ctrl+c, ctrl+v

- nie widzi mi sie tworzenie iloczynu kartezjańskiego wszystkich model_abstract_*.
- Moglbym dziedziczenie zrobic tak: activerecord->accesable->datetmeable->doc, ale wtedy kazdy obiekt ktory jest datetimeable musiałby być accesable, a nie powinien.
Potrzebuję rozwiązania prawie jak a extends b,c
