ul. Powstańców Śląskich 7a
53-332 Wrocław
NIP 8992786490
KRS 0000608120
REGON 363987723
Global4Net Sp. z o. o.
+48 71 769 11 32
© 2009 – Global4Net. All Rights Reserved.
Poniżej zamieszczam krótką instrukcję przygotowaną przez jednego z naszych programistów – Pawła odnośnie tego jak debugować kod Magento, w przypadku kiedy chcemy odczytać błędy pojawiające się w sklepie internetowym lub wyciągnąć poszczególne zmienne czy też metody.
Wyłączamy cache
Reindexujemy wszystko
Czyścimy cache przeglądarki
Włączamy logi Magento:
System > Konfiguracja > Programista(Developer)
W ustawieniach logów przełączamy na włączony. Domyślnie logi zapisywane są w ścieżce: var/log
Wchodzimy w plik index.php i odkomentowujemy(lub dopisujemy) linie
ini_set(’display_errors’, 1);
Wchodzimy w plik .htaccess i przełączamy Magento w tryb developerski dopisując kod:
SetEnv MAGE_IS_DEVELOPER_MODE „true”
Zmieniamy nazwę pliku errors/local.xml.sample na errors/local.xml
Dodatkowo instalujemy ‘Easy Template Path Hints’ – dodatek wyświetlający ścieżki bloków oraz widoków na frontendzie oraz backendzie.
Kiedy piszemy kod czasem zajdzie potrzeba wyświetlenia różnych zmiennych. Można to zrobić przez zwykłe wyświetlenie ich: echo($zmienna). Ta funkcja nie wyświetli nam jednak ani tablicy ani obiektu. Aby wyświetlić tablicę możemy użyć print_r($zmienna)lub var_dump($zmienna). Magento jest oparte na Zendzie, dlatego też możemy użyć fukcji zendowskiej Zend_Debug::dump($zmienna).
Żeby sprawdzić w jakiej klasie się znajdujemy przydatna wtedy jest funkcja get_class. Np. var_dump(get_class($this));
Podobnie możemy sprawdzić jakie mamy dostępne pola oraz metody klasy w której się znajdujemy: get_class_vars i get_class_methods.
Czasami może zajść potrzeba wyświetlenia sobie zmiennej na wersji produkcyjnej sklepu. Wtedy możemy opakować naszego dumpa w diva z display none:
<div style=”display: none;”><?php var_dump($zmienna) ?></div>
Inną metodą może być wyświetlenie zmiennej tylko dla naszego IP:
if ($_SERVER[‘REMOTE_ADDR’] == ‘11.11.11.11’) {
Zend_Debug::dump($zmienna);
}
Kiedy nie możemy sobie wyrzucić dumpa na stronę (np. w niektórych kontrolerach lub przy np. mailach) możemy wrzucić go do naszego loga funkcją file_put_contents. Dodatkowo jeśli jest to array używamy funkcji var_export.
file_put_contents(Mage::getBaseDir().”/var/log/moj.log”, $zmienna);
file_put_contents(Mage::getBaseDir().”/var/log/moj.log”, var_export($array));
Od początku 2022 roku wchodzimy w skład Unity Group. Teraz zapisując się do naszego newslettera, będziesz na bieżąco z informacjami całej naszej organizacji.