Hibakeresés funkciók Bitrix d7

Középpontjában a D7 meg viszonylag kényelmes beépített diagnosztikai képességeit a kódot. Ők képviselik névtér Bitrix \ Main \ Diag, rövidítve az alábbi példák:

Hibakeresés SQL-lekérdezések

Középpontjában a D7 követni SQL-lekérdezéseket használ az úgynevezett SQL-tracker. Ha a tracker minden kérést az adatbázis (Bitrix módszer \ Main \ db \ Connection :: queryInternal) a tracker írásbeli kérelmére, a kezdési és befejezési idő. Tracker egy osztály objektum Diag \ SqlTracker.

A tracker és felvételét objektum nyomon követésére, hogy a jelenlegi kapcsolatot, és hívja a módszer startTracker:

Miután a hívást, mielőtt a hívást startTracker stopTracker valamennyi kérelmet ellenőrizni fogják. Minden egyes kérelem képviseli egy objektum osztály Bitrix \ Main \ Diag \ SqlTrackerQuery, amelyek gyűjtése állítható elő hívó eljárás Diag \ SqlTracker :: getQueries

Törölje az adatokat tracker, és elkezd egy új pálya, meg kell hívni startTracker érv $ visszaállítás = true:

Példa követési kérelmek fogadásakor a információs blokk elemek:

Meg kell jegyezni, hogy a tracker nem követi kérelmet az a régit.

Tartalmát jeleníti meg egy változót a képernyőn

Diag \ Debug :: lerakó lehetővé teszi a nyomtatást az egy változó tartalmát olvasható formában, valójában ez add-on var_dump:

Ha a második argumentum átadni egy húr a változó neve, ez jelenik meg előtte a változó tartalmát:

Ha a harmadik argumentum értéke igaz, akkor a metódus visszaadja a változó tartalmát, ahelyett, hogy a kimenet a képernyőn.

Dump a változó tartalmát a fájlban

Ezek a funkciók lehetővé teszik, hogy rögzíti a változó tartalmát egy log fájlt. a fájl elérési útját helyhez viszonyítva szemrehányásokat át a harmadik érv $ filename, az alapértelmezett módszer van írva /__bx_log.log fájlt.

dumpToFile ír egy fájlt az eredmény a módszer Debug :: dump, azaz formázott var_dump funkciót. writeToFile írja, vagy csak egy változó vagy az eredménye print_r funkciót. Ha a változó egy tömb.

Mérése kódfuttatást idő

Ha azt szeretnénk, hogy az intézkedés a végrehajtási időt néhány darab kódot, akkor ez az integrált megoldás:

start - idő (unix timestamp az ezredmásodperc) startTimeLabel első hívást.

időt - között startTimeLabel és endTimeLabel másodpercben. Ha lenne több mérést ugyanazzal a névvel (ebben a példában - „Label1”), míg a stack.

Emellett vannak olyan hasznos módszereket szolgáltat az osztály Bitrix \ Main \ Diag \ Segéd:

Diag \ Helper :: getCurrentMicrotime () függvény az aktuális időbélyeg ezredmásodperc.

Diag \ Helper :: getBackTrace () visszaadja halom funkció hívásokat.