![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 82 Pomógł: 1 Dołączył: 19.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Dosyć nie dawno zacząłem pracować na OOP w php. Mam mały problem z kodem. Otóż jak mogę wykorzystać funkcję klasy A w klasie B. Np.
Ale nie wiem jak to zrobić, by móc użyć np($db->assoc) w np(class user). Jest to wytłumaczone tak na moje umiejętności. Rzecz jasna w normalnym kodzie musiałbym np. stworzyć nową zmienną $db = new db(); itp. Ale pomijając to. To jak wykorzystywać funkcje z innych klas? Z góry dziękuję za wyczerpującą odpowiedź i pozdrawiam, Maxie. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 476 Pomógł: 96 Dołączył: 10.04.2008 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj o dziedziczeniu.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 22 Dołączył: 14.12.2007 Skąd: Wyszków Ostrzeżenie: (0%) ![]() ![]() |
Akurat tutaj nie powinno się dziedziczyć
![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Na początek wywalić mysql_* na rzecz obiektowego PDO.
Później poczytać o http://martinfowler.com/eaaCatalog/dataMapper.html W przypadku który tutaj przedstawiłeś bardzo często wykorzystuje się ten wzorzec. Czyli jakaś klasa user zawiera tylko dane podstawowe użytkownika jak id, imie, nazwisko, pesel itp ale nie odpowiada bezpośrednio za obsługę danych. Do tego jest mapper będący pośrednikiem pomiędzy bazą (zazwyczaj jakimś ORMem np doctrine, propel) a modelem. Wiem że trudne na początek ale warto się pouczyć. -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
kurde ludzie ale wy kombinujecie, człowiek pyta jak światło zapalić a wy mu karzecie elektrownie atomową budować
@Maxie: w linij 12 napisz $db=new db(); a jeszcze lepiej stwórz sobie właściwość w klasie user i twórz nowy obiekt db tylko raz np. w konstruktorze klasy user |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Bo wychodzę z założenia że jak uczyć to raz a dobrze
![]() -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
Bo wychodzę z założenia że jak uczyć to raz a dobrze ![]() idąc tym tropem zakładam że w szkole podstawowej miałeś liczby zespolone, przecież poco się uczyć że pierwiastek drugiego stopnia z liczby ujemnej nie istnieje? To co sugerujesz na 99% otwierało by w konstruktorze nowe połączenie z bazą. rozumiem że chodzi ci o tworzenie nowego połączenia przy każdym wywołaniu konstruktora klasy user, tak ? jeśli tak to 99,9% nie masz racji dlaczego tak uważam ? ano dlatego że kolega "Maxie" zapewne przeczytał jakiś dosyć stary kurs i na jego podstawie zrobił coś takiego
poza tym to co napisałeś nie odzwierciedla problemu problemem było odwołanie się do jednej klasy z poziomu drugiej, a nie jak pobierać dane "z bazy do klasy" ![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 14 Dołączył: 28.11.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@sazian
A co tutaj ma szkoła do nauki, którą ktoś sobie sam przyswaja? Co jak co, ale akurat rada z PDO była jak najbardziej trafna, bo jest to już wręcz "umówmy się" standard i proszę Cię - nie czepiaj się że jednak ku drodze nauki używać mysql_, bo to wpajanie tego samego dwa razy ![]() @topic
PS: Ad. nazewnictwa - "User" dotyczy bardziej już samego bytu użytkownika, a w twojej sytuacji tworzysz pewnego rodzaju menadżera, który zarządza już tymi użytkownikami (więc chyba UserManager byłby bardziej trafny). Jeśli twoja aplikacja jest bardziej rozbudowana, to zainteresuj się Doctrinem. Ten post edytował Dipter 31.03.2013, 19:40:29 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Cytat To jak wykorzystywać funkcje z innych klas? Najprościej pewnie jak bozia kazała, niu objekt i jedziesz z metodami. Ale jak znam życie to i tak każdy zacznie kombinować naokoło ![]() Jest taki wzorzec nawet - fasada. Może od tego zacznij? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 04:23 |