1. <?php
  2. /**
  3. * Interactive memory debugging tool.
  4. *
  5. * You can display contents of :
  6. * - default PEAR_PackageFileManager2 class options
  7. * - this frontend options
  8. * - all forms values, defaults and validation states
  9. * - the Warnings/Errors stack
  10. *
  11. * @category   PEAR
  12. * @package    PEAR_PackageFileManager_Frontend_Web
  13. * @author     Laurent Laville <pear@laurent-laville.org>
  14. * @copyright  2005-2006 Laurent Laville
  15. * @license    http://www.php.net/license/3_01.txt  PHP License 3.01
  16. * @since      File available since Release 0.1.0
  17. */
  18.  
  19. require_once 'HTML/QuickForm/Action.php';
  20.  
  21. function varDump($var)
  22. {
  23.     $available = PEAR_PackageFileManager2::isIncludeable('Var_Dump.php');
  24.     if ($available) {
  25.         include_once 'Var_Dump.php';
  26.         Var_Dump::display($var, false, array('display_mode' => 'HTML4_Table'));
  27.     } else {
  28.         $styles = array('');
  29.         echo '<pre style="background-color:#eee; color:#000; padding:1em;">';
  30.         var_dump($var);
  31.         echo '</pre>';
  32.     }
  33. }
  34.  
  35. /**
  36. * You can display contents of :
  37. * - default PEAR_PackageFileManager2 class options
  38. * - this frontend options
  39. * - all forms values, defaults and validation states
  40. * - the Warnings/Errors stack
  41. *
  42. * @category   PEAR
  43. * @package    PEAR_PackageFileManager_Frontend_Web
  44. * @author     Laurent Laville <pear@laurent-laville.org>
  45. * @copyright  2005-2006 Laurent Laville
  46. * @license    http://www.php.net/license/3_01.txt  PHP License 3.01
  47. * @since      Class available since Release 0.1.0
  48. */
  49. class ActionDump extends HTML_QuickForm_Action
  50. {
  51.     /**
  52.      * Processes the request.
  53.      *
  54.      * @param  object   HTML_QuickForm_Page  the current form-page
  55.      * @param  string   Current action name, as one Action object can serve multiple actions
  56.      * @since  0.1.0
  57.      * @access public
  58.      */
  59.     function perform(&$page, $actionName)
  60.     {
  61.         $fe = &PEAR_PackageFileManager_Frontend::singleton();
  62.         $fe->log('debug',
  63.             str_pad($page->getAttribute('id') .'('. __LINE__ .')', 20, '.') .
  64.             ' ActionProcess='. $actionName
  65.         );
  66.  
  67.         $page->isFormBuilt() or $page->buildForm();
  68.         $page->handle('display');
  69.  
  70.         $sess =& $fe->container();
  71.  
  72.         $opt = $page->getSubmitValue('dumpOption');
  73.         switch ($opt) {
  74.             case '0':   // PFM options
  75.                 break;
  76.             case '1':   // GUI options
  77.                 $settings = $fe->getOption(array('settings'), false);
  78.                 varDump($settings);
  79.                 break;
  80.             case '2':   // Forms values container
  81.                 $data = $fe->container();
  82.                 unset($data['pfm']);
  83.                 varDump($data);
  84.                 break;
  85.             case '3':   // Errors/Warnings stack
  86.                 $errors = PEAR_PackageFileManager_Frontend::getErrors();
  87.                 varDump($errors);
  88.                 break;
  89.             case '4':   // Included files
  90.                 $includes = get_included_files();
  91.                 varDump($includes);
  92.                 break;
  93.             case '5':   // PFM package info
  94.                 varDump($sess['pfm']->getArray());
  95.                 break;
  96.             case '6':   // declared classes
  97.                 $classes = get_declared_classes();
  98.                 varDump($classes);
  99.                 break;
  100.         }
  101.     }
  102. }
  103. ?>