![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 2 Dołączył: 15.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie!
Chcę nauczyć się programowania obiektowego. Niestety, kursy internetowe opierają się na nieco głupich przykładach, w stylu: - zaszczekaj burku - hau hau Nie ma to przełożenia na realne problemy z jakimi stykamy się w programowaniu. W mojej książce, "PHP i MySQL. Vademecum profesjonalisty" także programowanie obiektowe nie zostało dobrze opisane. Postanowiłem więc spróbować napisać coś prostego. W moim przypadku był ro system rejestracji. Skrypt działa w 100%, chociaż nie jest dokończony (nie ma walidacji hasła, a walidacja loginu też nie jest w pełni skończona). Chodzi mi raczej o samą zasadę działania. Od razu mówię, że jest to mój PIERWSZY, obiektowy projekt pisany bez żadnego wzoru. Zależy mi na tym, żeby ktoś poradził, co należy zmienić.
Na początku chciałem napisać klasę connect (obecnie jest zawarta w komentarzu), jednak miałem problem z wykorzystaniem jej, tzn. zależy mi, żeby w jednej klasie zawrzeć wszystkie dane dotyczące logowania do mysql i później żebym mógł w innych klasach wykorzystywać wszystkie metody mysqli. Niestety miałem z tym problem. Jeżeli ktoś wie jak to zrobić, to byłbym także wdzięczny za odpowiedź. pozdrawiam ![]() Ten post edytował Testosteron 3.07.2014, 17:21:48 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Dziedziczenie jest wspaniałe i daje mnóstwo korzyści. Jedną z moich ulubionych jest tzw. polimorfizm. Jako że nie lubisz przykładów nieinformatycznych (ja np. wolę takie na psach, truskawkach itd.
![]() Prędzej czy później będziesz chciał zrobić obiekty pól formularza. To jest doskonałe miejsce dla dziedziczenia, bo one będą miały jakieś części wspólne, na przykład:
Obiekt generujący textarea mógłby dziedziczyć po obiekcie generującym zwykłe pole tekstowe, bo będą miały prawdopodobnie wiele wspólnego, a jedną z niewielu różnic będzie metoda, która wypluwa ich HTML. W klasie formularza mógłbyś mieć metodę, która dodaje pole na zasadzie:
A definicja metody add w klasie Form mogłaby wyglądać tak:
Tutaj działa nasz polimorfizm, bo mówisz metodzie add, że może przyjmować dowolne pole. Każda z naszych powyższych klas InputText, InputCheckbox i InputTextarea to instancje klasy InputField, bo każda po niej dziedziczy. InputText i InputCheckbox bezpośrednio, a InputTextarea dziedziczy po InputText, czyli też jest dzieckiem klasy InputField ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.06.2025 - 19:08 |