Wątek przeniesiony 2023-05-16 15:38 z Hardware/Software przez Riddle.

xDebug nie pokazuje logów w PhpStorm

0

Hej

Mam problem z XDebugerem pewnie ustawiłem zła konfigurację, ale nie chce debugować jak odpala stronkę, jezeli debuguje pojedyńczy plik jest ok. Jeżeli możecie spojrzeć i coś doradzić, próbowałem różnych konfiguracji ale nie pomagało.

Poniżej konfiguracja:
merge_from_ofoct.jpg

0

Czyli co dokładnie nie działa, bo nie rozumiem?

1

Który PHP i która wersja XDEBUG? Od 3.X standardowy port to 9003.
Masz to w jakimś kontenerze, czy lokalnie? I co to znaczy, że działa dla pojedynczego pliku?
I ostanie, to skrypt uruchamiany z przeglądarki czy CMD?

0

To jest PHP 8.1, mam to lokalnie I jest to Wordpress czyli w php.ini dać tez port 9003? A dla pojedynczego pliku debuger to miałem na myśli że odpalam go w PHP stormie dla pliku i faktycznie loguje

0

Najpierw wyprintuj sobie phpinfo() lub w cmd php -m i zobacz jaką masz wersję Xdebug. Opcje konfiguracyjne różnią się między 2 a 3, a z portu można wnioskować, że używasz konfiga dla wersji 2.
Nie dokońca rozumiem co Ci loguje ten XDebug. Chcesz korzystać z profilera? Czy chodzi Ci o logowanie do pliku aktywności Xdebug?
Jak chodzi jednak o zwykły Step debuging to sprawdź w PHPStorm czy masz ustawiony interpreter PHP poprawnie.
Zobacz tu:
https://www.jetbrains.com/help/phpstorm/configuring-xdebug.html#integrationWithProduct

0

Chodzi o to że jest jakby wyciek pamięci jest fatal error memory size i jak zwiększam limit to zwiększa się zapotrzebowanie i to błędne koło. zrobiło mi się to po aktualizacji wtyczki ACF ale potrzebuje najnowszej wersji więc downgrade nie wchodzi w grę. Fatal error wyskakuje w różnych plikach core'owych Wordpressa w zależności jak się wczyta ale przyczyna jest w ACf i zapewne moich starych funkcjach w szablonie. Chce sprawdzić w którym miejscu jest jakaś pętla lub funkcja co zżera pamięć

0

To włącz profiler w xdebug.ini ustaw xdebug.mode=profile
https://xdebug.org/docs/profiler
https://xdebug.org/docs/all_settings#mode
I popatrz w plik wynikowy. Tylko jak mówię, zweryfikuj wersję Xdebug. Dla PHP 8.1 można mieć Xdebug > 3.1 tym samym ustawienia są różne.
Jak zainstalowałeś zła wersję to może w ogóle nie działać.
Opcjonalnie do tych funkcji podawaj sobie

print memory_get_usage();

na początku i na końcu funkcji i szukaj jaka funkcja powoduje wzrost użycia.

0

Wersję mam 3.2.1

0

To wszelkie ustawienia w Xdebug.ini też rób dla tej wersji.
Jak będziesz używać poprawnych kluczy to pewnie wszystko znacznie działać.

0

a jak mogę print memory_get_usage()

dla takich funkcji, dodaje to przed i po?

if ($template_slug === 'page-templates/content.php') {
    if (get_field('content')) {
        if (have_rows('content')) {
            profile_section('content', function() {
                while (have_rows('content')) {
                    the_row();

                    if (get_row_layout() == 'content') {
                        get_template_part('offers');
                        do_action('render/' . get_row_layout(), get_row());
                    }
                }
            });
        }
    }
0

Dokładnie. Np.:

<?php
print_r([__LINE__ => memory_get_usage()]);
$str = <<<TEXT
 ABCD
}
TEXT;
print_r([ __LINE__ => memory_get_usage()]);
$test = [];
for($x = 0; $x <9; $x++){
	$test[] = $str.$x;
}
print_r([__LINE__ => memory_get_usage()]);
unset($test);
print_r([__LINE__ => memory_get_usage()]);

https://onlinephp.io/c/8253f

0

No i znalazł się błąd to powoduje błąd, nawet jak chce zwrócić wartość

if (get_field('dynamic_content')) {
    $dynamic_content = get_field('dynamic_content');
    echo '<div class="test">' . $dynamic_content . '</div>';
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1