Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Konstrukcja aplikacji - klasy
busterek
post
Post #1





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 30.07.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witajcie.
Chciałbym poprosić praktyków o pomoc. Wszystkie kursy, czy teksty pomocy jakie znalazłem na temat klas jakoś mnie nie zadowalają. A chciałbym zacząć pisać moje aplikacje jakoś bardziej sensownie.
Główne pytanie brzmi jak uzależniać klasy między sobą(IMG:style_emoticons/default/questionmark.gif) Uściślam problem.
Załóżmy, że piszę system do obliczania urlopów (planowanie urlopów i ich rozliczanie, drukowanie wniosków, drukowanie raportów). W takim projekcie widzę następujące klasy:
- pracownicy (wszelkie operacje związane z obsługą listy pracowników)
- urlopy (operacje dotyczące rejestracji i rozliczania urlopów)
- raporty (operacje generowania różnego rodzaju wydruków: wnioski urlopowe, zestawienia urlopów itd.)

Pewnie musi być jeszcze jakaś klasa, gdzie są wszelkie operacje związane z obsługą bazy danych i jakaś główna klasa aplikacji.

Jak to teraz powiązać ze sobą?
Czy wszytkie klasy powinny dziedziczyć po klasie głównej? Czy może zrobić tak jak robię do tej pory, czyli klasa główna tworzy klasy podrzędne w konstruktorze? Wtedy mam zapis, który wałkuję od jakiegoś czasu: $klasaGlowna->klasaPodrzedna->metoda();

Podpowiedzcie coś?
Go to the top of the page
+Quote Post
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Widzę, że podstawy masz już za sobą, może zainteresuj się jakimś frameworkiem? Np. CI, Kohana, Zend 1 - znacznie ułatwi ci to pisanie własnych aplikacji (no i nauczy dobrych praktyk (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
busterek
post
Post #3





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 30.07.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


No właśnie nie chcę frameworka. Jakoś tego nie czuję. Po prostu czuję wtedy, że nie panuję nad kodem aplikacji. Wiem, że brzmi to dziwnie, ale tak jest.
Go to the top of the page
+Quote Post
vermis
post
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 56
Dołączył: 3.06.2010
Skąd: Tarnowskie Góry

Ostrzeżenie: (0%)
-----


Na dłuższą metę i tak nie będziesz w stanie całego kodu pisać samodzielnie. Lepiej się z tym od razu pogodzić i skorzystać z frameworka, dużo wygodniej się pracuje. Poza tym jak wyglada kod PHP też nie wiesz i nie przeszkadza Ci to z niego korzystać. Podobnie jest z frameworkiem dostajesz narzędzie z którego korzystasz nie wnikając (za bardzo) w jego kod.
Go to the top of the page
+Quote Post
Olbrych
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 2
Dołączył: 1.02.2010

Ostrzeżenie: (0%)
-----


Pracowników, urlopy i wnisoki pewnie masz zapisane w bazie. Więc lepiej jest tutaj działać na modelach, które odwzorowują tabele w bazie danych i relacje między nimi.
Jeżeli niechcesz korzystać z framework-ów, które mają wbudowaną ORM, możesz bez problemu do swojego projektu podpiąć osobny ORM np. Propel lub Doctrine.
Używa się ich bardzo wygodnie i ułatwiają życie, ale jeżeli będziesz wyświetlał duże listy z wieloma warunkami, które mają się szybko generować to wtedy używaj czystego SQL,
gdyż ORM-y będą tworzyły bardzo dużo obiektów. Podsumowując do operacji i zależności na obiektach, które są odwzorowane w bazie danych ORM-y są bardzo dobre.
Go to the top of the page
+Quote Post
busterek
post
Post #6





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 30.07.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Pracowników i urlopy mam w bazie. Wnioski są generowane na podstawie zapisanych urlopów, więc ich nie muszę zapisywać w bazie. Przynajmniej w założeniach projektu nie muszę. (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
crafter
post
Post #7





Grupa: Zarejestrowani
Postów: 72
Pomógł: 2
Dołączył: 14.02.2007

Ostrzeżenie: (0%)
-----


Bardzo szybko można to powiązać ze sobą za pomocą ORMA który jest zaimplikowany praktycznie w kazdym lepszym frameorku typu zend czy symfony lub uzyc doctrine lub propel.
dziala to mniej wiecej tak:
przykladowo na zend_db
  1. $pracownicyObj = new Pracownicy_Table();
  2. $pracownik = $pracownicyObj->find(1); //pobierz z bazy pracownika o id 1
  3. $urlopy = $pracownik->getUrlopy(); //pobierz wszystkie urlopy dla pracownika o id 1 (oczywiscie musi byc zaimplementowana w modelu metoda getUrlopy
  4. var_dump($urlopy); //wyswietl te urlopy.


Lub jesli nie chcesz uzywac frameworka (czego nie polecam) to musisz sam sobie zadbac o taki ORMIK.
czyli pobierasz z tabeli pracownicy dane jako tablice wstrzykujesz je w konstruktorze do jakiejs klasy, potem może jakis seter do ustawiania urlopow, jakas fabryka do fabrykowania obiektow itp.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 23:42