Jestem całkiem nowy w tworzeniu wtyczek i miałem trudności z debugowaniem.
Użyłem dużo echa i jest niechlujny i brzydki.
Jestem pewien, że jest lepszy sposób, aby to zrobić, może IDE z debuggerem, w którym mogę uruchomić całą witrynę, włączając wtyczkę?
plugins
debug
plugin-development
Sruly
źródło
źródło
WP_DEBUG
false, zgodnie z zaleceniami Johna, masz całkiem dobre pojęcie o tym, co dzieje się źle, jeśli w ogóle, w twoich skryptach. Następnie możesz edytować w programie Dreamweaver, nacisnąć Ctrl + S, a następnie F5 w przeglądarce, aby natychmiast wyświetlić zmiany.Odpowiedzi:
Przejdź do wp-config.php i zmień
define('WP_DEBUG', false);
nadefine('WP_DEBUG', true);
. Zainstaluj także wtyczkę Log Deprecated Notices Andrew Andrew Nacina .źródło
Jeśli otrzymujesz błędy, x-debugowanie to wspaniałe rozszerzenie PHP, które dodaje nowoczesne ślady wstecz do PHP.
Jeśli próbujesz dowiedzieć się, co się dzieje, gdzie nie ma błędów, moim ulubionym podejściem jest zdefiniowanie funkcji, która rejestruje dane wyjściowe w pliku. Więc robię plog (zmienna $) i to pojawia się w pliku dziennika, który mogę następnie zbadać. Jest to szczególnie przydatne, gdy próbujesz dowiedzieć się, co wydarzyło się przed wywołaniem funkcji header () lub w innych sytuacjach, w których nie można drukować do STDOUT.
źródło
Użyj xdebug + NetBeans IDE. Po pełnej konfiguracji - co jest łatwe do zrobienia - możesz ustawić punkty przerwania we wtyczce i oglądać zmienne w punktach przerwania. Myślę, że to najlepszy sposób na debugowanie wtyczek lub innych aplikacji php w tym zakresie.
źródło
Debuguję staromodny sposób,
error_log()
ing ivar_dump
ing. Uważam, że jest to dla mnie najbardziej wydajny sposób, mam kilka funkcji otoki do obsługi różnych typów danych, ponieważerror_log
wczytywanie tablic i obiektów może być uciążliwe. Również używanieprint_r()
in może być trudne do odczytania, gdy nie ma go w<pre>
. Mamtj_log()
do rejestrowania błędów itj()
do wyświetlania danych wyjściowych (które w zasadzie pokazuje dowolny typ danych w reprezentatywnym mannorze:Więc po prostu robię:
tj( $current_user );
czy cokolwiek.źródło
Po majstrowaniu przy wielu IDE, zdecydowałem się na zwykły stary Notepad ++ z ultra dostosowanym schematem kolorów Podświetlanie składni.
Mam skonfigurowane makro, dzięki czemu po naciśnięciu klawisza Shift-Ctrl-X następujący kod jest generowany w miejscu, w którym znajduje się mój kursor:
To proste, ale ogólnie mogę wyśledzić 90% moich błędów za pomocą tego makra i włączonej WP_DEBUG.
źródło
print_r($var, true)
zamiastvar_dump
.Napisałem małą klasę do tworzenia pliku dziennika, jest bardzo przydatny, gdy debugujesz wywołania ajax.
http://github.com/hunk/Magic-Fields/blob/master/tools/debug.php
Musisz tylko zrobić coś takiego:
Debug :: log („To jest komunikat debugowania”);
Po wykonaniu tej linii wiadomość zostanie dodana do pliku dziennika, a następnie możesz użyć polecenia tail (jeśli używasz systemu operacyjnego w stylu Uniksa)
tail -f mylogfile.log
Jeśli możesz przekazać do tej funkcji również tablicę lub obiekt.
pamiętaj, że musisz zmienić wiersz 20 na ścieżkę, w której chcesz zapisać plik dziennika
źródło
Używam Aptane IDE w systemie Linux i UltraEdit w systemie Windows, a ten ma również parser PHP. Widzę też wszystkie wskazówki od xDebug ze stałą
WP_DEBUG
zdefiniowaną wwp-config.php
.Zobacz także mój post na ten temat i zachęcamy do komentowania i dzielenia się opiniami na temat narzędzi programistycznych.
źródło
Polecam sprawdzić FirePHP . Możesz wysłać informacje o debugowaniu do Firebug Firefoksa przez nagłówki HTTP, co zwykle zapewnia czystsze wyniki debugowania.
źródło
Nieźle też: Eclipse Jest blisko PhpStorm + za darmo.
źródło
Istnieją dwa środowiska IDE, które mogę polecić i oba używałem szeroko: PhpED (tylko Windows) i PhpStorm + XDEBUG (Mac, Windows i Linux.) Jestem teraz na Macu, więc mogę używać tylko tego drugiego.
Oba ROCK! Dobra wiadomość, że PhpStorm kosztuje 49 USD przed wrześniem 2010 r., A dopiero potem 99 USD. Gdybym był w systemie Windows i musiałem ponownie wybrać, nie jestem pewien, który wybrałbym.
Szczerze mówiąc, nie mogę nie myśleć, że każdy programista wtyczek, który nie korzysta z jednego z tych dwóch narzędzi, jest poważnie upośledzony, szczególnie jeśli są stosunkowo nowi w tworzeniu wtyczek WordPress.
źródło
Krumo - stylowa klasa debugowania php
Kolejną naprawdę miłą rzeczą jest klasa php „krumo”. Jest zaimplementowany w ½ min i oferuje łatwy sposób debugowania wszelkiego rodzaju zmiennych:
Ponadto pomaga w śledzeniu wstecznym, pokazuje załadowane klasy lub dołączone pliki i wszystko na żądanie.
Plus to ZA DARMO!
Pobieranie
Krumo @sourceforge
źródło
Używam wtyczki o wartości 13 USD o nazwie LogPress, którą można kupić w ThemeForest i jest to absolutnie God-send. Możesz debugować wszystko, co dotyczy ich wtyczek i strony. Obsługuje logowanie do konsoli Firebug i wiele więcej. Nie mogę bez niego żyć, dlatego korzystam z tej wtyczki.
Ta wtyczka jest prawdopodobnie najlepszymi pieniędzmi, jakie kiedykolwiek wydałam i pozwoliła zaoszczędzić niezliczone godziny na rozwoju wtyczek Wordpress.
źródło
Używam phpED i xdebug, ale dla mnie (i wydaje się, że dla kogoś innego) debugowanie wtyczek lub pliku motywu jest niemożliwe! Debuger zatrzymuje się tylko na punktach przerwania, które znajdują się w głównym lub oryginalnym pliku „rdzenia”! ktoś może mi pomóc?
źródło
Najpierw dodaję
define('WP_DEBUG', false);
do pliku wp-config.php (jak większość osób powiedziała) moją instalację lokalną, która jest najnowszą kopią odpowiedniego serwisu produkcyjnego (zarówno plików, jak i danych). To sprawia, że rzeczy są szybkie, bezpieczne, oddzielne, ale dobrze odzwierciedlają przynajmniej jedno miejsce, w którym wtyczka będzie faktycznie używana.Dodam również wtyczkę paska debugowania wraz z niektórymi dodatkami paska debugowania (na przykład przejściowe) - odpowiednio do twoich wtyczek.
Używam również dodatku Firebug dla Firefoksa, który jest doskonały do śledzenia problemów z HTML, CSS i JavaScript, a także do sprawdzania dziwności układu.
Koduję za pomocą UltraEdita, którego używam od ponad 15 lat do całej gamy kodowania (od php do SQL) zarówno w pracy, jak i w domu, więc to działa dobrze dla mnie, ale może nie mam wystarczająco dużo, aby ocenić jako IDE dla wielu ludzi. Posiada funkcje podświetlania składni, automatyczne uzupełnianie i układ kodu oraz kilka skrótów HTML i CSS, które pomagają unikać literówek i tym podobne. Przeważnie przynosi mi to znajomość, która jest ważnym aspektem często pomijanym w pośpiechu do nowego. Pamięć mięśni pomaga w powtarzalności nawet podczas kodowania.
I oczywiście zazwyczaj mam odpowiednią stronę z kodeksu otwartą w innej zakładce na odpowiednim przykładzie.
Wszystkie one pomagają w różny sposób uwidaczniać błędy w kodowaniu, analizie składniowej, błędach funkcjonalnych i błędach w układzie i nie wpływają zbytnio na sposób kodowania lub brak błędów. Większość można na chwilę zignorować lub dezaktywować, jeśli eksperymentujesz lub pracujesz nad czymś, do czego później powrócisz.
Aha, i nie ma nic złego w dobrze ustawionym echu lub print_r, aby sprawdzić coś na klawiszu (o ile usuniesz je po zakończeniu).
źródło
Sprawdź Query Monitor w połączeniu z Query Monitor Extend do kompleksowego debugowania WordPress (błędy PHP / powiadomienia / ścisłe / ostrzeżenia, zapytania do bazy danych, ścieżki, stałe, żądania HTTP, transjenty, zmienne sesji, zrzuty var).
Sprawdź także wszystkie posty Meta i zapisywanie jakie wtyczki, aby uzyskać szczegółowe informacje na temat postów.
źródło
PHPStorm i Xdebug to dla mnie gra zmieniająca się w rozwoju WordPress. Gorąco polecam teraz. Specjalnie z wbudowanymi narzędziami do debugowania.
źródło