![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 1 Dołączył: 19.08.2009 Ostrzeżenie: (10%) ![]() ![]() |
Witam! Od 5 dni uczę się OOP. Pewnie jak każda osoba która uczy się OOP naukę rozpoczyna przy pisaniu klasy do obsługi mysql.
No więc i tak ja też uczyniłem. Chciałbym byście spojrzeli na moją klasę i postarali się jakoś mi pomóc (co dodać, poprawić etc.) Chcę napisać jeszcze klasę do zapisywania logów z błędów, i tu pojawia się pytanie czy w OOP zapisywanie do pliku jest normalnie za pomocą funkcji fwrite() czy też jest jakaś inna funkcja bardziej nadająca się do tego typu operacji. PS. Pod klasą dałem utworzenie obiektów, bo nie chciało mi się robić już tego w osobnych plikach.
Ten post edytował boosik01 30.05.2011, 18:39:46 |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Ok.
Wywalić i użyc PDO |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Nie zaczynaj od pisania, zacznij od czytania / przeglądania gotowych już komponentów.
Tematów na temat `[Ocena]Moja super klasa do obsługi baz danych` było mnóstwo i w kilku niektórzy znaleźli trochę czasu i napisali wiele porad jak taka klasa w ogóle powinna wyglądać, a najlepiej przejrzyj sobie źródła już istniejących modułów do obsługi baz danych, jak np. PDO o którym już wspomniał wookieb. P.S. Kod to nie ZOO, więc małpą mówimy NIE, szczerze aż dziw bierze że to jeszcze istnieje i jest używane _^_. Ten post edytował melkorm 30.05.2011, 19:19:42 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 1 Dołączył: 19.08.2009 Ostrzeżenie: (10%) ![]() ![]() |
PDO jest klasą samą w subie tak? Więc pisanie klasy do obsługi bazy danych odpada więc to jest + bo mogę się już zabrać od razu za rejestrację etc...
Do tego dobra obsługa wyjątków, brak ataków sql Injection no, no ciekawe (IMG:style_emoticons/default/biggrin.gif) Ok napisałem klasę do łatwej obsługi PDO (IMG:style_emoticons/default/wink.gif)
Wszystko działa jak należy, chodź pewnie ta klasa i tak jest daleka od ideału i jeśli wgl ta klasa trzyma jakieś standardy (IMG:style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Rozszerz PDO po prostu.
http://pl2.php.net/manual/en/keyword.extends.php I naucz się formatować kod. Tutaj nie ma co oceniać bo wszystko jest Nie tak. Poza tym sprawdź czy ona naprawdę działa bo tu błąd na błędzie. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 1 Dołączył: 19.08.2009 Ostrzeżenie: (10%) ![]() ![]() |
Kod jest przecież sformatowany ;p Przynajmniej u mnie w notepad++.
Ok PDO rozszerzyłem. PS. Wszystko to tzn. co? Prosze o jakieś wskazówki czy coś (IMG:style_emoticons/default/smile.gif) Mało w sieci jest klas obsługi PDO, zaś patrząc na inne to też mam podobnie... |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 275 Pomógł: 32 Dołączył: 21.03.2006 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
Kod jest przecież sformatowany ;p Przynajmniej u mnie w notepad++. Ok PDO rozszerzyłem. PS. Wszystko to tzn. co? Prosze o jakieś wskazówki czy coś (IMG:style_emoticons/default/smile.gif) Mało w sieci jest klas obsługi PDO, zaś patrząc na inne to też mam podobnie... A po co ci klasa do obsługi PDO? PDO jest napisane w OOP przecież. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 1 Dołączył: 19.08.2009 Ostrzeżenie: (10%) ![]() ![]() |
Pnieważ caly czas w każdym pliku musiałbym dołączać try{}catch{}, a druga sprawa by pobrać jakieś dane trzeba maznąć tyle kodu:
Czy nie lepiej napisać sobie sobie rozszerzenie klasy PDO która by to załatwiała w jednej linijce no ewentualnie w dwóch ;p ? Ten post edytował boosik01 31.05.2011, 08:12:01 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Pnieważ caly czas w każdym pliku musiałbym dołączać try{}catch{} Jeżeli nie masz potrzeby by obsługiwać błędy możesz całą stronę objąć jednym blokiem try..catch.Cytat a druga sprawa by pobrać jakieś dane trzeba maznąć tyle kodu Nie wiem czy zauważyłeś, ale do pobrania danych wykorzystałeś... jedną linię kodu.Cytat Czy nie lepiej napisać sobie sobie rozszerzenie klasy PDO która by to załatwiała w jednej linijce no ewentualnie w dwóch ;p ? Tak patrzę na ten Twój wynalazek sprzed kilku postów... nie, nie lepiej. Bo pozbawiłeś się tam jakiejkolwiek kontroli czy możliwości ingerencji w pobieranie danych.Jeżeli już chcesz udostępnić sobie jakąś warstwę abstrakcji ponad PDO (które rzeczywiście nie ma jakiegoś idealnego interfejsu) skorzystaj lepiej z jakiegoś gotowego rozwiązania, np. Doctrine DBAL, bo na pisanie swoich jeszcze nie jesteś gotowy. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 8 Dołączył: 28.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ja się jeszcze przyłączę do dyskusji, bo niepotrzebnie starasz się zrobić z psa, hipopotama. Akurat w kwestii obsługi baz danych jest tyle gotowych rozwiązań że niepotrzebne jest pisanie nowych, a tym bardziej kiepskich jak ta wyżej (IMG:style_emoticons/default/smile.gif)
Masz właśnie PDO, ale masz też np. PEAR DB, ADO DB już o wszelakiej maści ORM-ach, bez których w tym momencie nie wyobrażam sobie pracy, nie wspomnę. Jak już koniecznie chcesz mieć własną klasę to tak jak wspominali koledzy wyżej rozszerzaj to PDO, czy jakąkolwiek inną klasę, ale są one już w sobie tak bogate że ciężko mi sobie wyobrazić jakieś specjalne ficzery które można by dodać. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 15.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Uwierz mi, że nie ma sensu pisania własnej klasy do obsługi bazy danych. Zgodzę się z przedmówcami i tak samo doradzę - użyj PDO! Jeśli dziedziczenie nie pasuje ponieważ chcesz stworzyć tylko DAO do abstrakcji danych, to zrób sobie nową klasę, najlepiej aby implementowała interfejs, w którym wylistujesz wszystkie wymagane przez Ciebie metody. Pod spodem jednak tez najbardziej opłaca się użyć PDO lub MDB2 z repozytorium PEAR jeśli masz PHP 5.0 bez PECL-owego modułu dla PDO ;]
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:19 |