Пример #1
0
 /**
  * Append a row to the table
  *
  * @param  array|Zend_Text_Table_Row $row The row to append to the table
  * @throws Zend_Text_Table_Exception When $row is neither an array nor Zend_Zext_Table_Row
  * @throws Zend_Text_Table_Exception When a row contains too many columns
  * @return Zend_Text_Table
  */
 public function appendRow($row)
 {
     if (!is_array($row) && !$row instanceof Zend_Text_Table_Row) {
         require_once 'Zend/Text/Table/Exception.php';
         throw new Zend_Text_Table_Exception('$row must be an array or instance of Zend_Text_Table_Row');
     }
     if (is_array($row)) {
         if (count($row) > count($this->_columnWidths)) {
             require_once 'Zend/Text/Table/Exception.php';
             throw new Zend_Text_Table_Exception('Row contains too many columns');
         }
         require_once 'Zend/Text/Table/Row.php';
         require_once 'Zend/Text/Table/Column.php';
         $data = $row;
         $row = new Zend_Text_Table_Row();
         $colNum = 0;
         foreach ($data as $columnData) {
             if (isset($this->_defaultColumnAligns[$colNum])) {
                 $align = $this->_defaultColumnAligns[$colNum];
             } else {
                 $align = null;
             }
             $row->appendColumn(new Zend_Text_Table_Column($columnData, $align));
             $colNum++;
         }
     }
     $this->_rows[] = $row;
     return $this;
 }
Пример #2
0
 public function logprofiler($action)
 {
     $suiteLogPath = Mage::getBaseDir('var') . DS . 'log' . DS . 'SagePaySuite';
     $profilerPath = $suiteLogPath . DS . 'PROFILER';
     if (!is_dir($suiteLogPath)) {
         mkdir($suiteLogPath, 0755);
     }
     if (!is_dir($profilerPath)) {
         mkdir($profilerPath, 0755);
     }
     $timers = Varien_Profiler::getTimers();
     $request = $action->getRequest();
     $prefix = $request->getParam('vtxcode', $request->getParam('VPSTxId', null));
     $prefix = $prefix ? $prefix . '_' : '';
     $longest = 0;
     $rows = array();
     foreach ($timers as $name => $timer) {
         $sum = Varien_Profiler::fetch($name, 'sum');
         $count = Varien_Profiler::fetch($name, 'count');
         $realmem = Varien_Profiler::fetch($name, 'realmem');
         $emalloc = Varien_Profiler::fetch($name, 'emalloc');
         if ($sum < 0.001 && $count < 10 && $emalloc < 10000) {
             continue;
         }
         $rows[] = array((string) $name, (string) number_format($sum, 4), (string) $count, (string) number_format($emalloc), (string) number_format($realmem));
         $thislong = strlen($name);
         if ($thislong > $longest) {
             $longest = $thislong;
         }
     }
     //Create table
     $table = new Zend_Text_Table(array('columnWidths' => array($longest, 10, 6, 12, 12), 'decorator' => 'ascii'));
     //Memory
     $preheader = new Zend_Text_Table_Row();
     $real = memory_get_usage(true);
     $emalloc = memory_get_usage();
     $preheader->appendColumn(new Zend_Text_Table_Column('real Memory usage: ' . $real . ' ' . ceil($real / 1048576) . 'MB', 'center', 1));
     $preheader->appendColumn(new Zend_Text_Table_Column('emalloc Memory usage: ' . $emalloc . ' ' . ceil($emalloc / 1048576) . 'MB', 'center', 4));
     $table->appendRow($preheader);
     //Append Header
     $header = new Zend_Text_Table_Row();
     $header->appendColumn(new Zend_Text_Table_Column('Code Profiler', 'center'));
     $header->appendColumn(new Zend_Text_Table_Column('Time', 'center'));
     $header->appendColumn(new Zend_Text_Table_Column('Cnt', 'center'));
     $header->appendColumn(new Zend_Text_Table_Column('Emalloc', 'center'));
     $header->appendColumn(new Zend_Text_Table_Column('RealMem', 'center'));
     $table->appendRow($header);
     foreach ($rows as $row) {
         $table->appendRow($row);
     }
     //SQL profile
     $dbprofile = print_r(Varien_Profiler::getSqlProfiler(Mage::getSingleton('core/resource')->getConnection('core_write')), TRUE);
     $dbprofile = substr($dbprofile, 0, -4);
     $dbprofile = str_replace('<br>', "\n", $dbprofile);
     $preheaderlabel = new Zend_Text_Table_Row();
     $preheaderlabel->appendColumn(new Zend_Text_Table_Column('DATABASE', 'center', 5));
     $table->appendRow($preheaderlabel);
     $preheader = new Zend_Text_Table_Row();
     $preheader->appendColumn(new Zend_Text_Table_Column($dbprofile, 'left', 5));
     $table->appendRow($preheader);
     //Request
     $rqlabel = new Zend_Text_Table_Row();
     $rqlabel->appendColumn(new Zend_Text_Table_Column('REQUEST', 'center', 5));
     $table->appendRow($rqlabel);
     $inforqp = new Zend_Text_Table_Row();
     $inforqp->appendColumn(new Zend_Text_Table_Column($this->_filterRequest($request), 'left', 5));
     $table->appendRow($inforqp);
     $date = Mage::getModel('core/date')->date('Y-m-d\\.H-i-s');
     $file = new SplFileObject($profilerPath . DS . $prefix . $date . '_' . $action->getFullActionName() . '.txt', 'w');
     $file->fwrite($table);
 }
Пример #3
0
 public function testTableMagicToString()
 {
     $table = new Zend_Text_Table(array('columnWidths' => array(10)));
     $row = new Zend_Text_Table_Row();
     $row->appendColumn(new Zend_Text_Table_Column('foobar'));
     $table->appendRow($row);
     $this->assertEquals((string) $table, "┌──────────┐\n│foobar    │\n└──────────┘\n");
 }
 protected function _renderInfoTable()
 {
     $table = new Zend_Text_Table(array('columnWidths' => array(15, 15, 13, 15, 20, 18, 20, 13)));
     $headerRow = array('Parent Id', 'Children Ids', '[C] Grouped Simple Links', '[X] Super Links', '[X] Super Attribute', '[X] Custom Options', '[X] Attribute Values', '[C] Positions');
     $linesCounter = 0;
     foreach ($this->_processedProducts as $data) {
         if (0 == $linesCounter % 20) {
             //Append Header on 0 and every 20 lines
             $table->appendRow($headerRow);
         }
         $row = new Zend_Text_Table_Row();
         foreach ($data as $value) {
             $value = is_array($value) ? implode(',', $value) : (string) $value;
             $row->appendColumn(new Zend_Text_Table_Column($value));
         }
         $table->appendRow($row);
         $linesCounter++;
     }
     echo $table;
 }