Mam taką klasę
  1. <?php
  2.  
  3. // modul Auth
  4.  
  5. class ModAuth {
  6. public function rysuj() {}
  7. public function akcja($r) {}
  8. };
  9.  
  10. class Auth {
  11. public function zaloguj($r) {}
  12. public function wyloguj() {}
  13. public function czyZalogowany() {}
  14. public function podajStatus() {}
  15. public function ktoZalogowany() {}
  16. };
  17.  
  18. class AuthGUI {
  19. public function formZalogowania() {}
  20. public function formWylogowania($u) {}
  21. };
  22.  
  23. class User {
  24. public function __construct() {}
  25. // atrybuty i funkcje dostepowe
  26. };
  27.  
  28. class DataBase {
  29. private function __construct() {}
  30. public function instance() {}
  31. public function query($s) {}
  32. public function getRow($s) {}
  33. public function getAll($s) {}
  34. };
  35.  
  36.  
  37. // modul Msg
  38.  
  39. class ModMsg {
  40. public function akcja($r) {}
  41. };
  42.  
  43. class Msg {
  44. public function listaWadomosci() {}
  45. public function dodajWiadomosc() {}
  46. public function usunWiadomosc($nr) {}
  47. public function edytujWiadomosc($nr) {}
  48. public function pobierzWiadomosc($r) {}
  49. };
  50.  
  51. class MsgGUI {
  52. public function pokazWiadomosc($w) {}
  53. public function pokazListeWiadomosci($lm) {}
  54. public function formWiadomosc($w){}
  55. public function przyciskDodajWiadomosc() {}
  56. public function przyciskUsunWiadomosc($nr) {}
  57. public function przyciskEdytujWiadomosc($nr) {}
  58. };
  59.  
  60. class MsgDB {
  61. public function pobierzWiadomosc($nr) {}
  62. public function pobierzListeWiadomosci() {}
  63. public function dodajWiadomosc($w) {}
  64. public function usunWiadomosc($nr) {}
  65. public function aktualizujWiadomosc($w) {}
  66. };
  67.  
  68. class Message {
  69. public function __construct() {}
  70. // atrybuty i funkcje dostepowe
  71. };
  72.  
  73. ?>

i takie zadanie

Msg::MsgGUI::przyciskEdytujwiadomosc(int)

Msg::MsgDB::pobierzWiadomosc(int):Message

Msg::Msg::dodajWiadomosc()

Auth::User::pobierzHaslo():string
zrobiłem na razie 2 metody i chce się upewnić czy dobrze

mój kod:
  1. <?
  2. // modul Auth
  3. class ModAuth {
  4. public function rysuj() {}
  5. public function akcja($r) {}
  6. };
  7.  
  8. class Auth {
  9. public function zaloguj($r) {}
  10. public function wyloguj() {}
  11. public function czyZalogowany() {}
  12. public function podajStatus() {}
  13. public function ktoZalogowany() {}
  14. };
  15.  
  16. class AuthGUI {
  17. public function formZalogowania() {}
  18. public function formWylogowania($u) {}
  19. };
  20.  
  21. class User {
  22. public function __construct() {}
  23. // atrybuty i funkcje dostepowe
  24. };
  25.  
  26. class DataBase {
  27. private function __construct() {}
  28. public function instance() {}
  29. public function query($s) {}
  30. public function getRow($s) {}
  31. public function getAll($s) {}
  32. };
  33.  
  34.  
  35. // modul Msg
  36.  
  37. class ModMsg {
  38. public function akcja($r) {}
  39. };
  40.  
  41. class Msg extends MsgGUI{
  42. public function listaWadomosci() {}
  43. public function dodajWiadomosc() {}
  44. public function usunWiadomosc($nr) {}
  45. public function edytujWiadomosc($nr) {}
  46. public function pobierzWiadomosc($r) {}
  47. };
  48.  
  49. class MsgGUI {
  50. public function pokazWiadomosc($w) {}
  51. public function pokazListeWiadomosci($lm) {}
  52. public function formWiadomosc($w){}
  53. public function przyciskDodajWiadomosc() {}
  54. public function przyciskUsunWiadomosc($nr) {}
  55. public function przyciskEdytujWiadomosc($nr) {}
  56. };
  57.  
  58. class MsgDB extends Msg{
  59. public function pobierzWiadomosc($nr) {}
  60. public function pobierzListeWiadomosci() {}
  61. public function dodajWiadomosc($w) {}
  62. public function usunWiadomosc($nr) {}
  63. public function aktualizujWiadomosc($w) {}
  64. };
  65.  
  66. class Message {
  67. public function __construct() {}
  68. // atrybuty i funkcje dostepowe
  69. };
  70.  
  71. //mój kod
  72.  
  73. $msg = new Msg();
  74. $msggui = new MsgGUI();
  75. $modmsg = new ModMsg();
  76.  
  77. $msg->przyciskEdytujWiadomosc($nr);
  78. $msg->pobierzWiadomosc($r);
  79.  


Dobrze to rozwiązałem.
Mam jeszcze schemat jak co:
http://img517.imageshack.us/i/messageboardklasyhtml1e.png/
http://img228.imageshack.us/i/messageboardklasyhtmlm4.png/
i opis
Klasa ModMsg

ModMsg::akcja(r:string[]) – Parametr metody jest tablicą asocjacyjną. Metoda sprawdza wartość r['akcja']. Jeżeli r['akcja']='pobierz' – wołana jest metoda Msg::pobierzWiadomosc(string[]) (r przekazywane jest do niej jako parametr), dla r['akcja']='dodaj' wołana jest metoda Msg::dodajWiadomosc(),dla r['akcja']='usun' wołana jest metoda Msg::usunWiadomosc(int) (jako parametr przekazywana jest wartość r['id']), dla r['akcja']='edytuj' wołana jest metoda Msg::edytujWiadomosc(int) (jako parametr przekazywana jest wartość r['id']). Jeżeli r['akcja'] nie jest ustawiona to wołana jest metoda Msg::listaWiadomosci().
Klasa Msg

Msg::listaWiadomosci() - Metoda pobiera z bazy liste wiadomosci (MsgDB::pobierzListeWiadomosci:Message[]) i wyswietla ją (MsgGUI::pokazListeWiadomosci(Message[])).

Msg::dodajWiadomosc() - Metoda tworzy nowy obiekt Message i wyswietla formularz MsgGUI::formWaidomosc(Message) przekazuąc utwożony obiekt jako parametr metody.

Msg::usunWiadomosc(int) – Metoda usuwa z bazy danych wiadomosc o podanym ID – wykorzystywana jest metoda MsgDB::usunWiadomosc(int).

Msg::edytujWiadomosc(int) – Metoda pobiera z bazy danych wiadomosc o podanym ID (metoda MsgDB::pobierzWiadomosc(int) i wyswietla ją w postaci formularza (metoda MsgGUI::formWiadomosc(Wiadomosc)).

Msg::pobierzWiadomosc(r:string[]) - Parametr r jest tablicą asocjacyjna zawierającą pola: r['data'], r['temat'], r['tresc'], r['autor'], r['id']. Metoda tworzy nowy obiekt klasy Wiadomosc i wypelnia go danymi z tablicy. Jeżeli r['id'] wynosi -1. Wiadomość przekazywana jest do metody MsgDB::dodajWiadomosc(Message) w celu dodania do bazy, Jeżeli r['id'] jest różne niż -1, wykorzystywana jest metoda MsgDB::aktualizujWiadomosc(Message) – aktualizacja wiadomości w bazie.
Klasa MsgGUI

MsgGUI::pokazWiadomosc(Message) – Wyświetla podaną jako parametr wiadomość sformatowaną w postaci tabelki. Dodatkowo, jeżeli autor wiadomości jest taki sam jak zalogowany użytkownik (użyć metody Auth::ktoZalogowany() do pobrania danych), pod tabelką należy wyświetlić przyciski edycji i usuniecia wiadomosci (metody MsgGUI::przyciskEdytujWiadomosc(int ) i MsgGUI::przyciskUsunWiadomosc(int) – jako parametr podać ID wiadomości).

MsgGUI::pokazListeWiadomosci(Message[]) - Wyświetla kolejno wszystkie wiadomości z listy przekazanej jako parametr. Do wyświetlenia każdej z wiadomości stosuje metode MsgGUI::pokazWiadomosc(Message). Dodatkowo na końcu wyświetla przycisk nowej wiadomości (metoda MsgGUI::przyciskDodajWiadomosc()).

MsgGUI::formWiadomosc(Message) – Wyświetla formularz wiadomosci. Formularz powinien zawierać pola: data,temat, treść, oraz pola ukryte id (ustawione na id wiadomosci), autor (ustawione na autora wiadomosci), mod=msg, akcja=pobierz.

MsgGUI::przyciskDodajWiadomosc() - Wyświetla fomularz składający się tylko z jednego przycisku. Formularz zawiera pola ukryte mod=msg i akcja=dodaj.

MsgGUI::przyciskUsunWiadomosc(int) – Wyświetla formularz składający się tylko z jednego przycisku. Formularz zawiera pola ukryte mod=msg, akcja=usun, id=(ID wiadomosci).

MsgGUI::przyciskEdytujWiadomosc(int) - Wyświetla formularz składający się tylko z jednego przycisku. Formularz zawiera pola ukryte mod=msg, akcja=edytuj, id=(ID wiadomosci).
Klasa MsgDB (note: W bazie danych jest tabela MESSAGES o strukturze odpowiadającej atrybutom klasy Message)

MsgDB::pobierzWiadomosc(int):Message – pobiera z bazy i zwraca wiadomość o podanym id (metoda DataBase::getRow(string)).

MsgDB::pobierzListeWiadomosci:Message[] - pobiera z bazy i zwraca liste wszystkich wiadomosci ( DataBase::getAll(string))

MsgDB::dodajWiadomosc(Message) – Dodaje wiadomość do bazy danych (metoda DataBase::query). Sprawdza id wiadomości. Jeżeli id jest równy -1 (nowa wiadomość) to nie powinien być ustawiany (baza ustawi na wartość domyślną), w przeciwnym wypadku powinien być ustawiony razem z pozostałymi polami.

MsgDB::usunWiadomosc(int) – Usuwa z bazy danych wiadomość o podanym id. Używa metody DataBase::query(string).

MsgDB::aktualizujWiadomosc(Message) – Aktualizuje w bazie wiadomość o podanym id. Można zrobić to za pomocą usunięcia i ponownego dodania tej wiadomości.

Czy dobrze myślę? smile.gif