Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Funkcje innych klas w klasach
Maxie
post
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.
  1. class db{
  2. //połączyłem się już z bazą danych
  3. public function assoc($sql){
  4. $sql = mysql_query($sql);
  5. return mysql_fetch_assoc($sql);
  6. }
  7. }
  8.  
  9. class user{
  10. public nick = 'user';
  11. public function id(){
  12. // i w tym miejscu potrzebuję skorzystać z funckij assoc w ten sposób:
  13. return $db->assoc("SELECT * FROM `users` WHERE `nick` = "'.$this->nick.'"");
  14. }
  15. }

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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 381
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ć.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 19:36