[PHP][OOP] kilka pytan na temat klas |
[PHP][OOP] kilka pytan na temat klas |
12.04.2011, 17:13:01
Post
#1
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 12.04.2011 Ostrzeżenie: (0%) |
witam, jestem poczatkujacy w php i mam kilka pytan
1. jak juz robie jakas klase to mam robic, zeby byla uniwersalna, czy tak zeby mi sie na niej dobrze pracowalo? taki przyklad: mam klase galerii, wymagane jest podlaczenie do bazy danych. baza danych to osobna klasa. i teraz moge zrobic tak, ze klase galeria wywoluje podajac dodatkowo jako parametry polaczenie z baza, ale rownie dobrze i wygodniej mi jest zrobic od razu polaczenie z baza w srodku tej klasy galeria, niz sie bawic w parametry. 2 w nawiazaniu do pierwszego. mam sobie klase galeria i w konstruktorze moge sobie tak po prostu zrobic $con = new database(); i korzystac z tego? dziala to dobrze, ale czy to jest poprawne, czy jednak powinienem to przekazywac w funkcji? 3. jesli pierwsza metoda, czy wlasciwie funkcja ma taka sama nazwe jak klasa to jest konstruktorem? 4. jesli w kontrolerze mam 2 funkcje to jest warto z tego robic klase, czy nie ma takiej potrzeby? pozdrawiam i z gory dziekuje za odpowiedzi |
|
|
12.04.2011, 17:28:52
Post
#2
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) |
1. Dobrze by było, żeby klasa była uniwersalna, a zarazem dobrze się z niej korzystało. Co do połączenia z bazą to klase która otwiera połączenie wywołuj na początku kodu, a potem klasę z galerią. W przypadku gdyby doszła Ci jeszcze jakaś inna klasa to połączenie z bazą już masz.
2.Lepiej instancje klasy dać do zmiennej klasy i potem do niej się odwoływać 3.Tak i nie musi to być pierwsza w kolejności 4. Na to pytanie sam sobie odpowiedz Co do odp 1 i 2 to ja bym tak zrobił |
|
|
12.04.2011, 17:37:52
Post
#3
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 12.04.2011 Ostrzeżenie: (0%) |
dzieki za odpowiedz:)
1. tak, ale ja mam tak zrobione, ze kazda klasa to osobny plik, wiec musze dla kazdej wywolywac, dlatego pytam czy moge to sobie robic tak, ze ta klasa jest scisle zwiazana z moim calym projektem, czy mam sie nastawic na robienie klasy dostepnej dla wszystkich i tutaj jest wlasnie kwestia polaczenia z baza. bo moge sie laczyc z baza w srodku klasy, a moge zrobic ta klase tak, ze laczenie z baza podaje jako parametr przy wywolaniu calej klasy 2. nie bardzo rozumiem. w konstruktorze mam ustawienie danych i w pewnym momencie robie sobie polaczenie z baza przez $con = new database(); i potem pobieram dane przez $con->query. no i tutaj tez bym mogl to zrobic jako parametr, ale tak jest szybciej i lepiej, ale czy poprawnie? w kontruktorze takie rzeczy moga sie znajdowac? 4. wolalabym poznac opinie kogos doswiadczonego generalnie chodzi o to czy caly projekt ma sie skladac z klas, czy tylko korzystac z nich w przypadku kiedy to ulatwia sprawe, jak np przy laczeniu z baza. no i nie wiem czy takie mieszanie tu klasy, tu procedury jest mile widziane Ten post edytował hermo767 12.04.2011, 17:38:17 |
|
|
12.04.2011, 18:57:22
Post
#4
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) |
1. Ja łącze się zawsze na początku skryptu. Eliminuje to kilkukrotne połączenie do bazy. Jeżeli byś z każdym wywołaniem metody z klasy łączył się z bazą no to troche by to obciążyło strone
2.Konstruktor to funkcja która jest wywoływana zawsze na początku przy wywołaniu klasy, czyli np.
a jakbyś z konstruktora zrobił normalną metodę to aby uzyskać taki sam efekt działania musiałbyś wywołać oby dwie metody, reasumując konstruktor to funkcja która jest automatycznie wywoływana przy wywołaniu klasy. Wydaję mi się, że dla Ciebie najlepszym rozwiązaniem będzie klasa abstrakcyjna do obsługi bazy danych. Poczytaj sobie o takich klasach 4(3). To pozostawie bez odpowiedzi |
|
|
12.04.2011, 19:21:40
Post
#5
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 12.04.2011 Ostrzeżenie: (0%) |
dzieki za odpowiedz.
1. hmm.. czyli lepiej nie robic laczenia sie z baza w kontruktorze? a co jesli kazda metoda wymaga polaczenia z baza? 2.
i takie cos jest poprawne? ze w kontsruktorze robie sobie dolaczenie innej klasy? poza tym po kazdym polaczeniu z baza nalezy zamknac to polaczenie, wiec takie jedno polaczenie ogolne nie zawsze jest zbyt dobrym pomyslem? jakby ktos mogl to prosze jeszcze na tamte pytania odpowiedziec:) |
|
|
Wersja Lo-Fi | Aktualny czas: 29.03.2024 - 09:48 |