Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [klasy] Założenia - ale czy poprawne?
Forum PHP.pl > Forum > PHP
PMadej
Witam wszystkich, zanim się wezmę za naukę klas chciałbym zrozumieć ich wykorzystanie. Mam aplikację opartą o php i tylko funkcje. Zastanawiałem się jak ją przerobić na klasy i do takich wniosków dochodzę:
1) Jeśli mam obsługę klienta to w klasie powinienem zawrzeć
- dodawanie go
- edycję jego danych
2) dla magazynu
- dodawanie produktow
- wydawanie z magazynu
- kompletowanie z polproduktow itp
...

I teraz moje pytanie: Czy tak podchodząc do konstrukcji klasy będę mógł wykorzystać ich wszelkie zalety i czy będzie to wydajny system. Jeśli moje założenia są błędne prosiłbym o lekkie naprowadzenie na prawidłowy tok myślenia obiektowego.

Z góry dzięki.
rzseattle
Kiedys sie bawilem w pisanie klasy dla kazdej czynnosci i kazdego "obiektu" , w panelu administracyjnym. Wynik byld dosyc dziwaczny poniewaz namnozylo mi sie wiele klas i po pewnym czasie poprostu zaczalem sie gubic w tym co gdzie jest.

Wecs odpowiedzjest taka , zanim zbudujesz klase musisz przemyslec to czy jest tobie naprawde potrzebna, bo w krotkim czasie powstaje balagan. a osobiscie odszedlem od pisania klas dla zbyt szczegolowychrzeczy na rzecz silnika i dolaczania kodu php do konkretnego szbalonu (np. dodawanie towarui td) , co w somie tez opiera sie na obiektowce (nie $_GET tylko $engine->input), ale przynajmniej dla mnie jest duzo czytelniesze bo masz w osobnym pliku ten kawalek ktory jest za to odpowiedzialny i przewaznie nie jest tego wiecej niz 100 linijek.

No ale to moje osobiste zdanie i upodobanie.
patrycjusz
pierwsze moje zdeżenie z obiektówką nastąpiło jakiś okres temu (mniejwięcej półtroa miecha temu może troche mniej) i wrażenia jak do tej pory są olbrzymie, coraz bardziej zagłębiam się w to jak bardzo można kod "pięknie ułożyć" i jak póżniej łatwo namierzyć błąd, więc głęboko zachęcam. A co do założeń to troszeczkę mało powiedziałeś ale dopowiem ci tylko tyle że ja obecnie za cokolwiek sie nie wezmę w php to już myśle o tym w kategoriach obiektowych chociarz koder jeszcze ze mnie marny :wink: .
P.S temat chyba raczej na hydepark :wink: .
spenalzo
Ja klasami zająłem się niedawno i muszę powiedzieć, że można przy ich pomocy zrobić rzeczy ciężko wykonalne na zwykłych funkcjach. Teraz już wiem, ze to byłą miłość od pierwszego kodu biggrin.gif
Dzięki klasom można znacznie skrócić czas pisania kodu, poza tym stanie się on bardziej przejrzysty - wadą jest spowolnienie działania skryptu.
Dodam także, że nie wszystko trzeba wrzucać do klas - należy stosować je jako środek pomocniczy, a nie zastępczy.
bulek
NO obiektowosc w php to potega a w nowszej wersji bedzie jescze fajniej. Oczywiscie ze jezeli piszesz modul administracyjny to sie oplaca. Oglnie mowiac klasy sa piekne poniewaz pozwlaja laczyc dane z funcjami /metodami/ ktore opreuja na tych danych. Oczywiscie nie ma co mnozyc klas na potege. Trzeba pamietac przedewszystkim z otomowosci czynnosci czyli piszemy jedna klase do autoryzacji i to w ten sposob by obslugiwala TYLKO autoryzacje a nie np jeszcze polaczenie do bazy smile.gif Tym powinna zajac sie juz inna klasa.
Pamietaj ze jest cos takiego ja dziedziczenie czyli mozesz napisac swoja podstawtowa klase i inne z niej beda tylko dziedziczyc. Co do admina to doskonale sie ta taktyka sprawdza. Pamietaj tez - nie wszyscy to robia - ze pewne klasy mozesz wspoldzielic pomiedzy serwisem a adminem smile.gif To oszczedza czasu i pracy smile.gif Po co duplikowac raz napisany kod questionmark.gif

Jak najbardziej OOP - Object Oriented Programin - ale to wymaga pracy i czestego zmieniania - ulepszania. A wlasnie co do zmiany obiektow to latwiej czasmi zmienic aplikacje jak jest dobrze napsiana obiektowo - poniewaz obiekty sa od siebie w miare niezalezne.
PMadej
bulek: możesz polecić jakieś źródła na temat tego jak tworzyć klasy, żeby miały one sens i miejsce, lub ewentualnie powiedzieć coś więcej na temat podejścia do klas zanim się je napisze: czym się kierować, na co zwrócić uwagę itp...

Z góry dzięki
bulek
No to napisze z czego mozna sie dowiedziec:

http://www.zend.com/zend/tut/class-intro.php
http://www.php.net - smile.gif
http://www.php-mag.net/

duzo dalo mi
http://www.phparch.com/ - niestety platne sad.gif


ale mozna tez przeczytac "PHP4 zaawansowane programowanie"
no i pisac samemu bo to chyba najwazniejsze bo wtedy widac co jest nie tak jest i myslisz jak to poprawic.
PMadej
czyli jesli chce zrobic to sensownie to klasy wypadaloby podzielic na takie czesci (wymienie kilka):

*zarzadzanie magazynem i tu wszystkie funkcje dotyczace operacji na magazynie
*obsluga klienta wszystko do edycji dodawania danych itp
*sprzedaz (dziedziczy z zarzadzania klientem i obslugi klienta) a zawiera funkcje dotyczacze wystawiania fv itp

Czy dobrze kombinuje z takim układem ?
bulek
Trudno mi powiedziec czy to bedzie dobrze moze tak nie widze kodu wiec trudno powiedziec. Moim zdaniem trzeba zawsze pamietac zeby klasy byly zamkniete robily konkretnie jedna rzezcz np klasa do bazy danych nie zawiera zadnego slownika ani dodawania obrazkow smile.gif.
anas
Cytat
1) Jeśli mam obsługę klienta to w klasie powinienem zawrzeć
- dodawanie go
- edycję jego danych
2) dla magazynu
- dodawanie produktow
- wydawanie z magazynu
- kompletowanie z polproduktow itp


Jesli chodzi o 1 - to jak najbardziej tak - tworzysz wkoncu klase(przepis na) klientow - wiec w klasie powinienes miec zbudowana podstawe do przechowywania wszelakich informacji na ich temat - jak i wszelkiego rodzaju metody(funkcje) operujace na tych danych - na tym wlasnie polega programowanie obiektowe...

analogicznie z 2 - znow wszystkie informacje o magazynie(a raczej produktach w nim przechowywanych + czynnosci jakie mozemy na nich wykonac(nasze metody)...

pozdrawiam

anas
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.