FirePHP használata


Hibakeresés FirePHP Firebug Firefox kiterjesztés segítéségvel A FirePHP egy kiterjesztés a Firefox FireBug addon-hoz, amit rendkívül jól használhatunk PHP debuggolásra, hibakeresésre, adatok naplózására, megjelenítésére.

A FirePHP használatához szükség van a telepített FireFox böngészőre és a FireBug addon-ra. Ezenkívül PHP oldalon a FirePHP lib-re, ami a naplózást és a JSON adatokat elküldi a böngészőnek. A gyakorlatban ha a böngésző oldalán megvannak a feltételek, PHP oldalon már csak a FirePHP lib-bel kommunikálunk.



FirePHP telepítése:

Ha webfejlesztéssel foglalkozol és nem ismered a FireBug-ot az derék hiba, de van egy nagyszerű videó sorozat amit RRD készített. A FireBug videó sorozatból gyakorlatilag megérted mennyire hasznos eszköz. A FireBug hogyan videókat letöltheted.

Ha a pluginek beszerzésével megvagy akkor a FireBug-ban engedélyezni kell a FirePHP-t. Ha ezt nem teszed meg, PHP oldalon küldhetsz bármit, az nem fog megjelenni.

Ahhoz hogy működjön a debugger engedélyezni kell a FireBug-ban

 

Miért jó ez neked?

Van rengeted módszer amivel hibát kereshetsz, ez csak egy alternatív lehetőség amit nem árt ha az ember ismer.

Előnye:

  • Működő weboldalaknál nagyon diszkréten lehet hibát javítani.
  • Rengeteg nyílt forráskódú rendszer, (Blog, CMS, Framework) használja már beépített szolgáltatásként. (CodeIgniter, ZendFramework, WordPress, Drupal?)
  • Egyszerű integráció bármihez

Hátrányok:

  • Ha nem tudsz figyelni a biztonsági kérdésekre, a legnagyobb segítéség is rosszul sül el. Gondolok itt arra, hogy mikor végeztél a hibakereséssel, nem kapcsolod ki.
  • Én úgy vettem észre sok adatnál behalós a Firefox megjelenítése, persze ez lehet verzió függő is.

FirePHPCore telepítése, használata

Szerezzük be a FirePHPCore osztályt. Telepíthetjük PEAR csomagként is. A telepítés UBUNTU rendszeren az alábbi parancs beírásával történik, rendszergazdai jogosultság mellett:

  1.   sudo pear channel-discover pear.firephp.org
  2.   sudo pear install firephp/FirePHPCore

A FirePHPCore osztály többféle felhasználási lehetőséget biztosít, így a függvényeket elérjük statikus metódusként (FB::), fb() függvény hívással vagy példányosítva is. Lehetőséget ad az osztály PHP4-es verziójában történő használatra is.

Én személy szerinte a Statikus metódusként történő használattal (FB::) favorizálok, bár ebben az esetben nem vagyok meggyőződve, hogy tényleg gyorsabb.

 Használat statikus metódussal (FB::), nincs telepítve PEAR csomagként

  1. <?php
  2. $fpPath=dirname(__FILE__)."/FirePHPCore-0.3.1/lib/FirePHPCore/";
  3. require_once ($fpPath.'fb.php');
  4.  
  5. ob_start();
  6. /*
  7.     minden kijelzés kikapcsolása
  8.     FB::setEnabled(false);
  9.  
  10.     bekapcsolása
  11.     FB::setEnabled(true);
  12. */
  13. FB::setEnabled(true);
  14.  
  15. // Defaults:
  16. $options = array('maxObjectDepth' => 10,
  17.     'maxArrayDepth' => 20,
  18.     'useNativeJsonEncode' => true,
  19.     'includeLineNumbers' => true);
  20.  
  21. //var_dump(FB::getOptions());
  22. FB::setOptions($options);

Nagyon fontos részlet a be és kikapcsolása lehetőség, erről ne feledkezzünk el!

  1. FB::setEnabled(false);

Változók és tömbök regisztrállása FirePHP-nek

Metódusok: log, info, warn, error

  1. //----------------------------------
  2. //változók naplózása
  3. $var=array(
  4.     "lorem"=>"ipsum",
  5.     "dolor"=>"ament",
  6. );
  7.  
  8. FB::log($var, "variableName");
  9.  
  10. //----------------------------------
  11. //info
  12. FB::info("Fontos információk", "Infó - 1");
  13.  
  14. //----------------------------------
  15. //warn - figyelmeztetés
  16. FB::warn("figyelmeztetések", "Figyelmeztetés - 1");
  17.  
  18.  
  19. //----------------------------------
  20. //error - hibaüzi
  21. FB::error("Hibaüzenet", "Errmsg - 1");

info, log, error, warrning

Üzenetek csoportba sorolása

Az üzeneteket színnel címkével elkülönített csoportokba oszthatjuk, így áttekinthetőbb a lista.

  1. //----------------------------------
  2. //group - csoportok
  3. //Start a group for following messages
  4. //Options: Collapsed: [true|false] Color: [#RRGGBB|ColorName]
  5.  
  6. $groupName="lorem Csoport";
  7. FB::group($groupName, array("Collapsed"=>true, "Color"=>"#ff6c00"));
  8. FB::log(array("lorem", "ipsum", "dolor"), "lorem Array");
  9. FB::groupEnd();

Addatrok csoportba rendezése színnel, címkével elválasztva

Információk táblázatos megjelenítés

Az átküldött tömb első eleme a táblázat fejléce.

  1. //----------------------------------
  2. //tabla
  3.  
  4. $tabla_label="Tábla Cimke Label";
  5. $table=array();
  6. $table[0]=array("Kérés", "Üzenet");
  7. $table[]=array("SELECT * FROM lorem", "Lorem Query");
  8. $table[]=array("SELECT * FROM ipsum", "Ipsum Query");
  9. $table[]=array("SELECT * FROM loremIpsum", "loremIpsum Query");
  10. FB::table($tabla_label,$table);

 Táblázatos megjelenítés debuggolás közben

 A cikk részeként letöltheted a teszt fájlokat, amivel talán egyszerűbb lesz a kezdeti fázist megugrani.

Egy másik verzió a fenti példaprogramokra, itt PEAR csomagként telepítve.

  1. <?php
  2. /*
  3.   Telepítés PEAR-csomagként Ubuntu-ra
  4.   sudo pear channel-discover pear.firephp.org
  5.   sudo pear install firephp/FirePHPCore
  6.  */
  7.  
  8. require_once ('FirePHPCore/FirePHP.class.php');
  9.  
  10. ob_start();
  11. $firephp = FirePHP::getInstance(true);
  12. /*
  13.     minden kijelzés kikapcsolása
  14.     $firephp->setEnabled(false);
  15.  
  16.     bekapcsolása
  17.     $firephp->setEnabled(true);
  18. */
  19. $firephp->setEnabled(true);
  20.  
  21. // Defaults:
  22. $options = array('maxObjectDepth' => 10,
  23.     'maxArrayDepth' => 20,
  24.     'useNativeJsonEncode' => true,
  25.     'includeLineNumbers' => true);
  26.  
  27. //var_dump($firephp->getOptions());
  28. $firephp->setOptions($options);
  29.  
  30.  
  31. //----------------------------------
  32. //változók naplózása
  33. $var=array(
  34.     "lorem"=>"ipsum",
  35.     "dolor"=>"ament",
  36. );
  37.  
  38. $firephp->log($var, "variableName");
  39.  
  40. //----------------------------------
  41. //info
  42. $firephp->info("Fontos információk", "Infó - 1");
  43.  
  44. //----------------------------------
  45. //warn - figyelmeztetés
  46. $firephp->warn("figyelmezetetések", "Figyelmeztetés - 1");
  47.  
  48.  
  49. //----------------------------------
  50. //error - hibaüzi
  51. $firephp->error("Hibaüzenet", "Errmsg - 1");
  52.  
  53.  
  54. //----------------------------------
  55. //group - csoportok
  56. //Start a group for following messages
  57. //Options: Collapsed: [true|false] Color: [#RRGGBB|ColorName]
  58.  
  59. $groupName="lorem Csoport";
  60. $firephp->group($groupName, array("Collapsed"=>true, "Color"=>"#ff6c00"));
  61. $firephp->log(array("lorem", "ipsum", "dolor"), "lorem Array");
  62. $firephp->groupEnd();
  63.  
  64.  
  65.  
  66. $groupName="Ipsum Csoport";
  67. $firephp->group($groupName, array("Collapsed"=>true, "Color"=>"red"));
  68. $firephp->log("lorem_variable", "lorem variable");
  69. $firephp->groupEnd();
  70.  
  71. //----------------------------------
  72. //tabla
  73.  
  74. $tabla_label="Tábla Cimke Label";
  75. $table=array();
  76. $table[0]=array("Kérés", "Üzenet");
  77. $table[]=array("SELECT * FROM lorem", "Lorem Query");
  78. $table[]=array("SELECT * FROM ipsum", "Ipsum Query");
  79. $table[]=array("SELECT * FROM loremIpsum", "loremIpsum Query");
  80. $firephp->table($tabla_label,$table);

Hasznos hivatkozások FirePHP-ról


Debug, PHP php, firebug, firephp, debug






Letöltések

A FirePHP-ről szóló bejegyzéshez elkészült tesztfájlokat letöltheted.
A teszt fájok tartalmazzák a leírás bejegyzéskor elérhető legújabb FirePHPCore (FirePHPLibrary-FirePHPCore-0.3.1) osztályt.
FireBug Firefox Addon
Firebug
FirePHP
FirePHP


Hozzászólás beküldése:


http://domain.tld (nofollow)
 ____    __    _    _  ____  __  __  ____ 
(_  _)  /__\  ( \/\/ )( ___)(  \/  )(_  _)
  )(   /(__)\  )    (  )__)  )    (  _)(_ 
 (__) (__)(__)(__/\__)(____)(_/\/\_)(____)



 
 
 
 
Powered By: PHP, Smarty, MySQL, CodeIgniter, jQuery, ArtH2O