Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Xdebug nie debuguje
Forum PHP.pl > Forum > PHP
Matrix12
Witam,


zainstalowałem xdebuga, do prostych plików działa natomiast jak mam klasę i każe mu coś zdebugować to niestety nic się nie dzieje... wyświetla tylko $this->db jako pusty a powinno być pełne.. Macie jakieś pomysły jak to naprawić albo debugować?
MESSIAH :)
Jakieś podpowiedzi?
Matrix12
Dziwny przypadek ogólnie, nie wiem dlaczego zwykła zmienna debaguje a metod nie
Pyton_000
Moja magiczna kula niestety nie widzi Twojego kodu sad.gif Chyba się popsuła...
Matrix12
Index.php
  1. <?php
  2.  
  3.  
  4. $app = new Application(new Database);
  5. $app->allProducts();



  1. <?php
  2.  
  3.  
  4. class Application
  5. {
  6. private $db;
  7.  
  8. public function __construct(Database $database)
  9. {
  10. $this->db = $database;
  11. }
  12.  
  13.  
  14. public function allProducsts()
  15. {
  16. $products = $this->db->querySelect('SELECT * FROM products');
  17.  
  18. return $products;
  19. }
  20. }
  21.  
  22.  
  23.  
  24.  
  25.  
  26. class Database
  27. {
  28. protected $db;
  29.  
  30. public function __construct
  31. {
  32. $this->connectWithDatabase();
  33. }
  34. public function querySelect($param)
  35. {
  36. $stmt = $this->db->prepare($param);
  37. $stmt->execute();
  38. $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
  39. return $result;
  40. }
  41. protected function connectWithDatabase()
  42. {
  43. try {
  44. $this->db = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
  45.  
  46. } catch (PDOException $e) {
  47. print "Error!: " . $e->getMessage() . "<br/>";
  48. die();
  49. }
  50. }
  51. }




Kod dla testów tylko i wyłacznie
Pyton_000
No dobra, a użycie? Co Ci nie wyświetla. Jak debugujesz.
Matrix12
W xdebagu mam tylko $db = null i co zwraca $_SESSION i tyle. Zaremowałem cały kod w querySelect i dałem $result = 'Dupa' i tego mi nie zwraca już..
nospor
NIgdzie w kodzie nie ma $db wiec trudno oczekiwac by $db dawalo cos innego niz null
Pyton_000
screena daj
Matrix12
http://zapodaj.net/05a76939589eb.png.html

Jeszcze jedna czerowna kropka jest w application przy innej metodzie ale ta to już wgl nie działa.
Pyton_000
Przecież działa... db ma przypisany obiekt PDO....
Matrix12
1. Dlaczego ma nulla skoro w application wywołuje allProduct
  1. public function allProducts()
  2. {
  3.  
  4. $domains = $this->database->doAction('querySelect', $params);
  5.  
  6. return $domains;
  7. }



tutaj nic się nei dzieje.

  1.  
  2. public function querySelect($params)
  3. {
  4. $stmt = $this->db->prepare($params);
  5. $stmt->execute();
  6.  
  7. $result = $stmt->fetchAll();
  8.  
  9. return $result;
  10. }



2. Czy ja muszę dodatkowo odpalić przeglądarkę by to mi debaugowało ?
Pyton_000
CO? Zdecyduj się co Ci nie działa. Najpierw pytasz o jakieś $db teraz o coś innego.
Matrix12
Jak widzisz ze screena $db daje nulla a w rzeczywiści zwraca dane z bazy
Pyton_000
Pokaż Ty mi na tym screenie $db == null
nospor
Dołączam sie do prosby Pyton bo i mnie niezmiernie interesuje gdzie Ty na tym screenie widzisz nulla
Matrix12
W nawiasie 0
Pyton_000
You made My Day exclamation.gif exclamation.gif
Matrix12
Może nie wiem jak go używać.. powiedzcie mi jak mam testować poprzez xdebug?

Pomożecie mi w dobrym korzystaniu z tego narzędzia ?
Pyton_000
Najpierw to musisz wiedzieć CO chcesz debugować.
Matrix12
Chce sprawdzić czy otrzymuje dobre dane z bazy.. zamiast robić var_dump().
Pyton_000
No to debugujesz tam gdzie spodziewasz się wyniku czyli w okolicy zwracania obiektów.

XDebug ma konfigurację, i jeśli masz za dużo poziomów zagłębień to Ci nie pokaże wartości. Poprzeglądaj konfigurację xdebug
Matrix12
Mam tylko katalog gdzie src z namespacem i tyle
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.