Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Odwolanie do funkcji z innej klasy
Wolfie
post
Post #1





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Witam,

Mam sobie klase Database w ktorej mam nastepujaca funkcje :

  1. public function query($sql) {
  2. $resultSet = mysql_query($sql, $this->connection);
  3. $result = array();
  4. while($r = mysql_fetch_assoc($resultSet)) {
  5. $result[] = $r;
  6. }
  7. return $result;
  8. }


I teraz w innej klasie ktora oddziela zapytania sql od klasy Database mam oto taka przykladowa funkcje :

  1. function find($id) {
  2. if(!$result = mysql_query("SELECT * FROM $this->tableName WHERE id='$id'")){
  3. throw new Exception('Error finding row');
  4. }
  5. $row = mysql_fetch_assoc($result);
  6. print_r($row);
  7. }


Teraz moje pytanie brzmi , jak odwolac sie w funkcji find() do funkcji query() zeby nie trzeba bylo powtarzac funkcji mysql_query ?

Jak to przerobic ?

Ten post edytował Wolfie 13.08.2009, 21:04:23
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




To już chyba 4 podobny twój temat dziś! Naprawdę tak trudno zerknąć w byle jakiego frameworka i to sprawdzić??

W klasie która ma find pobierz lub przekaż sobie egzemplarz klasy database i po sprawie. I nie pytaj się JAK bo jest na to mnóstwo sposobów.
Go to the top of the page
+Quote Post
Wolfie
post
Post #3





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Jakbym wiedzial jak sie przekazuje egzemplarz to nie pisalbym na forum.....

Mozna jakis przyklad prosic ?

Ten post edytował Wolfie 13.08.2009, 21:11:36
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Identycznie jak się przekazuje parametry do metody. Identycznie jak zapisujesz wlasciwosc w klasie.
Go to the top of the page
+Quote Post
Wolfie
post
Post #5





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


nie kumam, mozna przyklad ?

Parametr do funkcji przekazuje sie tak metoda($parametr) ale co to ma wspolnego z odwolaniem sie do innej klasy to jest dla mnie zagadka....

Ten post edytował Wolfie 13.08.2009, 21:18:55
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Mlask...
  1.  
  2. class twojaKlasa
  3. {
  4. private $db;
  5. public function __construct($db)
  6. {
  7. $this->db=$db;
  8. }
  9.  
  10. public function find()
  11. {
  12. $this->db->query();
  13. }
  14. }


Możesz też uzyskać egzemplarz db w inny sposob. ale to przestudiuj sobie wzorce projektowe typu registry, factory, singleton
Go to the top of the page
+Quote Post
Wolfie
post
Post #7





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Ale ja chce przeciez odwolac sie do funkcji z innej klasy a nie tej samej kalsy.....

Jesli dobrze rozumiem to $db ma byc egzemplarzem klasy czyli ?

  1.  
  2. function __construct(new MySqlDatabase) {
  3. $this->db = new MySqlDatabase;
  4. }


Czy tak ?
Go to the top of the page
+Quote Post

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: 23.08.2025 - 00:04