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
Dipter
post
Post #2





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 (IMG:style_emoticons/default/wink.gif)

@topic
  1. <?php
  2.  
  3. class User
  4. {
  5.  
  6. private $db;
  7.  
  8. public function __construct(Db $db)
  9. {
  10. $this->db = $db;
  11. }
  12.  
  13. public function readByNick($nick)
  14. {
  15. return $this->db->assoc("SELECT * FROM `users` WHERE `nick` = "'.$nick.'"");
  16. }
  17.  
  18. }
  19.  
  20. $user = new User(new Db(/* ... */));
  21. $data = $user->readByNick('Arnold Boczek');


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
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: 24.08.2025 - 22:55