Matrix12
23.08.2015, 11:27:10
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 :)
23.08.2015, 16:05:05
Jakieś podpowiedzi?
Matrix12
23.08.2015, 16:07:09
Dziwny przypadek ogólnie, nie wiem dlaczego zwykła zmienna debaguje a metod nie
Pyton_000
23.08.2015, 16:18:36
Moja magiczna kula niestety nie widzi Twojego kodu

Chyba się popsuła...
Matrix12
24.08.2015, 07:24:40
Index.php
<?php
$app = new Application(new Database);
$app->allProducts();
<?php
class Application
{
private $db;
public function __construct(Database $database)
{
$this->db = $database;
}
public function allProducsts()
{
$products = $this->db->querySelect('SELECT * FROM products');
return $products;
}
}
class Database
{
protected $db;
public function __construct
{
$this->connectWithDatabase();
}
public function querySelect($param)
{
$stmt = $this->db->prepare($param);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
protected function connectWithDatabase()
{
try {
$this->db = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>"; }
}
}
Kod dla testów tylko i wyłacznie
Pyton_000
24.08.2015, 07:57:19
No dobra, a użycie? Co Ci nie wyświetla. Jak debugujesz.
Matrix12
24.08.2015, 08:27:52
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
24.08.2015, 08:38:05
NIgdzie w kodzie nie ma $db wiec trudno oczekiwac by $db dawalo cos innego niz null
Pyton_000
24.08.2015, 08:54:29
screena daj
Matrix12
24.08.2015, 17:34:47
http://zapodaj.net/05a76939589eb.png.htmlJeszcze jedna czerowna kropka jest w application przy innej metodzie ale ta to już wgl nie działa.
Pyton_000
24.08.2015, 18:27:39
Przecież działa... db ma przypisany obiekt PDO....
Matrix12
24.08.2015, 18:37:51
1. Dlaczego ma nulla skoro w application wywołuje allProduct
public function allProducts()
{
$domains = $this->database->doAction('querySelect', $params);
return $domains;
}
tutaj nic się nei dzieje.
public function querySelect($params)
{
$stmt = $this->db->prepare($params);
$stmt->execute();
$result = $stmt->fetchAll();
return $result;
}
2. Czy ja muszę dodatkowo odpalić przeglądarkę by to mi debaugowało ?
Pyton_000
24.08.2015, 18:42:15
CO? Zdecyduj się co Ci nie działa. Najpierw pytasz o jakieś $db teraz o coś innego.
Matrix12
24.08.2015, 18:57:46
Jak widzisz ze screena $db daje nulla a w rzeczywiści zwraca dane z bazy
Pyton_000
24.08.2015, 19:01:23
Pokaż Ty mi na tym screenie $db == null
nospor
24.08.2015, 19:07:34
Dołączam sie do prosby Pyton bo i mnie niezmiernie interesuje gdzie Ty na tym screenie widzisz nulla
Matrix12
24.08.2015, 19:11:45
W nawiasie 0
Pyton_000
24.08.2015, 19:14:28
Matrix12
24.08.2015, 20:01:21
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
24.08.2015, 20:05:41
Najpierw to musisz wiedzieć CO chcesz debugować.
Matrix12
24.08.2015, 20:09:25
Chce sprawdzić czy otrzymuje dobre dane z bazy.. zamiast robić var_dump().
Pyton_000
24.08.2015, 20:13:45
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
24.08.2015, 20:51:44
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.