Daniel Częstki

Daniel Częstki senior php developer

Temat: OOP - architektura

Witam.

Programojąc w OOP dobrze jest budowac system w oparciu o wydzielone podsystemy.
Na razie czytam dosyc sporo dokumentacji na ten temat i wiem ze aplikacja WWW napisana w OOP powinna zawierac
1. system kontrolera
2. system routingu
3. system łańcucha akcji
4. system request
5. system walidacji formularzy

Ja na razie jestem na etapie tworzenia obiektów, ale pytan pojawiajacych sie mi podczas nauki OOP jest tyle ze glowa boli.

Np. obecnei jestem na etapie rozbijania klas na klasy DataObject i DataAccessObject.
Idea bardzo fajna, aczkolwiek dowiedzialem sie ze najczesciej stosuje sie 3 poziomy klas. Nie wazne.

Zastanawiam sie jak powinna wygladac architektura prostego systemu.
Zaluzmy niech to bedzie system rejestracji uzytkownika.
Klasa uzytkownik to imie, nazwisko, email i haslo.
o tego dochodzi klasa walidacji formularzy.
Jak powinno sie to rozwiazac ?
Czy na podstawie danych z formularzy tworze obiekt uzytkownika i przekazuje go do klasy walidacji, ktora sprawdzi pola, czy raczej przekazuje do klasy walidacji dane z formularza i jezeli wszystko jest ok, to tworze obiekt User (DO), przekazuje go do DAO i wywoluje metode zapisu na bazie.

Jakie są wasze propozycje ?
Czy znacie moze jakies gotowe aplikacje, ktore sa napisane obiektowo i ktore mozna byloby podejzec ?Daniel C. edytował(a) ten post dnia 10.12.07 o godzinie 21:29

konto usunięte

Temat: OOP - architektura

zapoznaj sie z roznymi frameworkami.

jesli chodzi o budowe systemu itd., to na to nie ma gotowego rozwiazania, wszystko zalezy od specyfikacji, konkretnego projektu i podejscia autora - chyba, ze chcesz potem toczyc rozwazania o wyzszosci swiat A nad swietami B, ew. o jedynym slusznym rozumieniu pojecia wzorca MVC. jesli nie, to jakkolwiek sobie to zrobisz (chodzi mi o to czy najpierw user czy tez walidacja...) i:
-bedzie dobrze dzialac
-bedzie bezpieczne
-nie bedzie generowalo 10 zapytan do bazy, tworzylo 15 klas, przekazywalo przez wartosc kilkukrotnie tych samych danych itp itd
to (guess what) - bedzie dobrze!

odnosnie przykladu jaki podales: ja bym byl za przekazaniem danych z formularza do walidacji i jesli ok, to tworzenie usera i zapis do bazy. jest to dla mnie bardziej naturalne podejscie.
Paweł Grzegorczyk

Paweł Grzegorczyk programista i
współwłaściciel
Nauko.pl

Temat: OOP - architektura

Hej.

A dlaczego nie walidować danych w klasie uzytkownika ??
Przecież i tak walidacja pól użytkownika dotyczą tylko użytkownika, więc specjalnie dla użytkownika trzebaby robić 2 klasy - walidującą i przechowującą dane/zapisującą.

Ja jak robie, to przekazuje dane z formularza do uzytkownika
i już w metodach set... robiona jest walidacja (wywolywanie metody np. validateEmail()). Oczywiście daje to możliwość dziedziczenia np. klient extends user i w tej klasie przeciążyć metode validateEmail()

Dochodzi jeszcze sprawdzanie czy np. login jest unikatowy i tego nie da się zrobić na poziomie klasy - dopiero przy zapisywaniu do bazy.
Michał C.

Michał C. Deputy Head of
Software Development

Temat: OOP - architektura

http://forum.php.pl/index.php?s=&showtopic=73422&view=...
Po za tym polecam http://forum.php.pl/MVC_t80488.html Wszystko stanie sie jasniejsze ;)

konto usunięte

Temat: OOP - architektura

czy mi sie zdaje, czy tez dyskusja robi sie czysto akademicka? skonczy sie zapewne mniej wiecej taka wymiana:

drogi Watsonie, czy lepiej bedzie...
Nie nie, Sherlock`u, biorac pod uwage, ze...
Alez Watsonie, przeciez...
itd. ;)
Daniel Częstki

Daniel Częstki senior php developer

Temat: OOP - architektura

Michał Czerwiński:
http://forum.php.pl/index.php?s=&showtopic=73422&view=...
Po za tym polecam http://forum.php.pl/MVC_t80488.html Wszystko stanie sie jasniejsze ;)

forum php juz przegladam od jakiegos czasu i wciaz odkrywam nowe rzeczy.
np. okazalo sie ze to co robilem proceduralnie mozna jakos nazwac.

Mam do Ciebie pytanie.
Czy sa jakieś ksiazki opisujace architekture projektowania aplikacji i wyjasniają podane nizej punkty ?
1. system kontrolera
2. system routingu
3. system łańcucha akcji
4. system request
5. system walidacji formularzy

aktualnie czytam PHP5 Zaawansowane programowanie i tam troche na ten temat jest, ale niezbyt dokladnie.

Natomiast jezeli chodzi o wzorce projektowe to kupilem sobie Head Design Patterns.

Bylbym wdzieczny za informacje.
Michał C.

Michał C. Deputy Head of
Software Development

Temat: OOP - architektura

Mam ksiązke http://helion.pl/ksiazki/php5ob.htm
Bardzo polecam. Lecz wymagane sa juz solidne podstawy OOP. Do podanych przez ciebie punktow to raczej nei ma ksiazek :) Kazdy po swojemu interpretuje pewne rzeczy. Przegladaj frameworki, czytaj fora, blogi. I najwazniejsze: KODUJ. Nie zastanawiaj sie czy robisz dobrze czy zle. Zrob tak "jak ci sie wydaje". Najwyzej zrobisz zle, ale juz bedziesz wiedzial jak robic nie nalezy :)

konto usunięte

Temat: OOP - architektura

Michał Czerwiński:
I najwazniejsze: KODUJ. Nie zastanawiaj sie czy robisz dobrze czy zle. Zrob tak "jak ci sie wydaje". Najwyzej zrobisz zle, ale juz bedziesz wiedzial jak robic nie nalezy :)

true, true. nic dodac, nic ujac.

konto usunięte

Temat: OOP - architektura

Daniel C.:
1. system kontrolera
2. system routingu
3. system łańcucha akcji
4. system request
5. system walidacji formularzy

Wedlug mnie pierwsze 4 punkty zapewnia wzorzec MVC, a do 5 czemu nie uzywac popularnego narzedzia PEARa (quickForm)?

Następna dyskusja:

OOP -> walidacja formula...




Wyślij zaproszenie do