Jelenlegi hely

Kívánalom: Rewired 2.0 - RWData


Kívánalom: Rewired 2.0 - RWData

Rewired 2.0 – RwData

Az RWMedia backend resze volt, de tok hasznos adathorodozo/loggolo szerszam, igy kulon modulkent szedtem.

Funkcioja kifejezetten fejlesztes centrikus. Adatokat tarolni es tetszoleges log informaciokat, mindezt egyetlen objektumban ami funkciokrol-funkciokra kuldozheto es a vegen kimutathato vagy egyeb modon kezelheto. Tovabba az egesz objektum konnyen konvertalhato JSON formaba, igy HTTP request-eken a neten keresztul is elkuldheto, majd miutan visszaerkezett, kombinalhato az eredeti valtozattal, igy vegul egyben kimutathato az osszes osszegyujtott log informacioval, idorendi sorrendben. Hasznos tud lenni ha pl aszinkronos request-eket akarunk lekovetni es logolni.

Mivel JSON formatumba konvertalhato, JSON formaba konnyen ki is mutathato a weboldalon, igy konnyu a fejleszonek atnezni minden adatot is benne.

Letoltes:
https://www.rewired.hu/sites/default/files/development/rwdata.zip

Telepiteshez lepesek:
1) Valamilyen PHP kodot es MySQL-t mukodteto rendszer, pl en XAMPP-ot hasznalok.

2) Sima Drupal 7.x telepites

3) Be kell masolni a kicsomagolt “rwdata” direktorium tartalmat a “{DrupalTelepites}/sites/all/modules” direktorium ala.

4) Drupalban bekapcsolni a “RwData“ modult. (menusor: modules->rwdata bekapcs)

5) Drupalban resetalni a cache-t, hogy aktivizalja magat a friss kod (menusor: configuration->performance->clear all cache gomb)

6) Keszen vagy.

Hasznalati elve, hogy meghivjuk az objektumot:
$obj = new \RWData();

Elozoleg ha van elokeszitett adatunk, akkor hivassal rogton beletehetjuk:
$input = [
'data1' => 'data1'
'log' => [],
'nesting' => 0,
];

$obj = new \RWData($input);

Ha logolni szeretnenk valamit, akkor csak hivni kell az objektumot es hozzadni:
$obj->log('tetszoleges log szoveg');

Hozzaadhatunk a logszoveg melle adatokat is ha vesszovel elvalasztva irjuk az adott log-vonalban pl:
$obj->log('tetszoleges log szoveg', $tetszolegesAdat);

Az adat fentebb lehet Array szintugy, igy tetszoleges mennyisegu informacio tarolhato itt.

A log-szoveg microszekundum szerint sorolodik mindig, igy pl pontosan lekovetheto hogy mikor hajtodott vegre es melyik parancs.

Kinyerni az osszes log informaciot az objektumbol az $obj->get('log') funkcioval tudjuk.

Ahogy fentebb mar emlitettem, egyeb tetszoleges adatokat is tarolhatunk az objektumon a $obj->set('tetszolegesNev', 'tetszolegesAdat') formatumban.

Ezeket teszolegesen kinyerni az $obj->get('tetszolegesNev') funkcioval tudjuk, hasonloan mint pl a 'log'-ot is.

A 'log'-on felul alapertelmezett valtozo az RWData-ban a 'nesting' is. A nesting meghatarozza hogy melyik szinten/melysegnek mutatodjon vizualisan ki az adott log szoveg. Ez hasznos tud lenni, ha 5-6 kulonbozo szintu HTTP request hivasbol akarjuk osszekombinalni a logokat, majd azt kimutatni, igy vizualisan konnyen meg tudjuk kulonboztetni hogy melyik mibol van. A nesting szam tetszolegesen valtoztathato, igy pl minden rekurziv hivasnal, vagy kulso HTTP hivasnal emelhetunk rajta. A lentebbi peldaval ez majd erthetobb lesz.

Osszekombinalni ket kulonbozo RWData objektum log informaciot a merge funcioval tudunk, tipikusan $obj1->merge($obj2) formaban, peldaul:

$inp1 = [
'nesing' => 0,
'data1' => 'data1',
'log' => ['000123 valami log info'],
];

$obj1 = new \RWData($inp1);

$inp2 = [
'nesing' => 1,
'log' => ['() 000456 masik log info'],
];

$obj2 = new \RWData($inp2);

$obj1->merge($obj2);

$obj1 log kimutatas akkor ez lesz:
[
'000123 valami log info',
'() 000456 masik log info'
]

Ha lenne egy harmadik objektum is, pl nesting lvl 4-el, akkor mind osszekombinalva igy nezne ki:
[
'000123 valami log info',
'() 000456 masik log info',
'() () () () 000789 harmadik log info'
]

Az RWMedia Backend pl nagyon aktivan hasznalja ezt a modult a szinkronos es aszinkronos logolasnal, adatbazisba irasnal, es vegso log kimutatasnal. Annak a topikjaban lathatjatok vizualisan is hogy mikent funckonal es hogyan is nez ki elesben.

REWiRED - Kutyus felfedő szétszéledés - 2014-2057 © Minden Jog Fenntartva!
Virtuális valóság és Kecskeklónozó központ - Oculus MegaRift - PS21 - Mozi - 4D - Bajuszpödrés
Médiaajánlat/Borsós Brassói Árak
Rohadt Impresszum!