![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 623 Pomógł: 11 Dołączył: 1.01.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam,
od kilku dni uczę się programowania obiektowego i chyba dobrze mi to idzie ![]() Mam tylko problem, bo nie wiem gdzie stosować takie programowanie, a gdzie lepiej jest pisać "tradycyjnie" ![]() Powiedzmy, że mamy taką klasę służącą do tworzenia formularzy i w niej dwie metody:
W zależności od zapotrzebowania wyświetlało by się:
lub
Czy dobrze rozumiem? Programowaniem obiektowym zajmują się od niedawna więc proszę o wyrozumiałość ![]() Z góry dziękuję za uwagi i rady ![]() -------------------- |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 89 Pomógł: 7 Dołączył: 19.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
przede wszystkim używaj return w metodach zamiast echo, teraz pomyśl czy nie lepiej zrobić metodę input zamiast password i text?
Jeżeli nauczysz się dobrze OOP to już nie będziesz chciał pisać 'tradycyjnie'. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 623 Pomógł: 11 Dołączył: 1.01.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
OK, dzięki.
Jeszcze takie mam pytanie: tworzę CMS'a (takiego prościutkiego) i na pewno będą w nim takie elementy jak popup'y z komunikatami oraz menu rozwijalne. Czy powinienem zrobić te elementy za pomocą obiektów?? -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
A nie lepiej zrobić coś takiego?
Nie znam się dobrze na oop, ale czy ten kod jest lepszy? Ten post edytował Wicepsik 27.12.2009, 18:28:32 -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 623 Pomógł: 11 Dołączył: 1.01.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Hej, napisałem coś w OOP
![]() Moglibyście rzucić okiem i powiedzieć czy wszystko jest OK? Moje klasy są niezwykle skomplikowane ![]() Pierwsza łączy się z bazą danych, a druga liczy ilość rekordów z podanego zapytania:
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Zamiast niepotrzebnie opakowywać standardowe funkcje mysql - skorzystaj z PDO.
-------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Zamiast niepotrzebnie opakowywać standardowe funkcje mysql - skorzystaj z PDO. Większość osób zaczyna od napisania klasy do obsługi Mysql ![]() -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Większość osób zaczyna od napisania klasy do obsługi Mysql ![]() Dokładnie, sam też tak zaczynałem, jednak z perspektywy czasu oceniam, że niepotrzebnie i sporo mojej ówczesnej pracy poszło na marne. Lepiej "pobawić się" dziedziczeniem, zasięgiem zmiennych, nadpisywaniem metod itd. próbując pisać coś pożytecznego, co pozwoli uniknąć klepania kilka razy tego samego kodu. -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Nie do końca się zgodzę - jeśli chodzi o wydajność, to - niestety - PDO jest na szarym końcu. Używam, kiedy muszę coś MAŁEGO i szybko napisać.
A opakowanie standardowych funkcji się przydaje, chociażby dla obiektowości. Fakt, jest jeszcze mysqli, ale doradzanie PDO w środowisku, w którym będzie wykorzystywany tylko MySQL, to dla mnie nieporozumienie. Poszukaj benchmarków na Sieci; nie wszystko złoto, co się świeci. A jeśli chodzi o np. bindowanie zapytań - mysqli. Choć nie zawsze bindowanie zapytań jest szybsze niż wstrzyknięcie całego zapytania; wszystko zależy od konkretnego przypadku. ~sweter - metoda query powinna być w klasie DB, a nie wyniku. Klasa wyniku, to - jak nazwa wskazuje - powinien być wynik + metody pozwalające na przeszukiwanie, wyciąganie danych, itp. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 623 Pomógł: 11 Dołączył: 1.01.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Czyli nie znaleźliście błędów? Uff..
![]() Teraz druga sprawa: przeczytałem troszkę tutoriali i dowiedziałem się, że można zrobić taką metodę, która będzie się nazywała tak klasa i przy tworzeniu obiektów będzie się od razu wywoływać (tak chyba było w PHP 4). I nie chodzi tu o __construct! Przykładowo:
Możecie powiedzieć jak to zrobić w PHP 5, bo nie chce mi się przekopywać tych wszystkich tutoriali ![]() -------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Może i PDO nie jest mistrzem wydajności, ale do takich zastosowań sprawdza się bardzo dobrze. A czy autor potrzebuje od razu maksymalnej wydajności? Niech się uczy przyszłościowych rozwiązań, a do odpowiedzi co jest lepsze dojdzie kiedyś sam
![]() Co do twojego pytania, to właśnie do tego służy konstruktor. Ten post edytował Mephistofeles 29.12.2009, 18:15:22 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat A opakowanie standardowych funkcji się przydaje, chociażby dla obiektowości. Sztuka dla sztuki. Zresztą jak sam wspomniałeś jest obiektowe mysqli, jest PDO, są różne gotowe rozwiązania, nie bardzo widzę sens tworzenia kolejnych opakowywaczy dla standardowych funkcji mysql. Chyba że ktoś musi mieć koniecznie "po swojemu". A PDO polecam nie ze względów wydajnościowych, a dla świętego spokoju z sql injection. -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 623 Pomógł: 11 Dołączył: 1.01.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
OK, teraz mam coś takiego:
Jednak wywołanie metody sort() nie wyświetla mi tablicy ![]() -------------------- |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
W klasie db lepiej dodać pole protected $wiersz, w metodzie query wywal global $wiersz (na marginesie global działa na odwrót) i daj $this->wiersz[$q] = mysql_fetch_assoc($wyn); a w metodzie sort odwołać się: print_r($this->wiersz) zamiast print_r($wiersz). Unikaj globali w klasach bo rozwalasz hermetyzację.
Ten post edytował darko 29.12.2009, 19:13:54 -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 06:01 |