[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class PhabricatorXHProfSampleListController 4 extends PhabricatorXHProfController { 5 6 private $view; 7 8 public function willProcessRequest(array $data) { 9 $this->view = idx($data, 'view', 'all'); 10 } 11 12 public function processRequest() { 13 $request = $this->getRequest(); 14 $user = $request->getUser(); 15 16 $pager = new AphrontPagerView(); 17 $pager->setOffset($request->getInt('page')); 18 19 switch ($this->view) { 20 case 'sampled': 21 $clause = '`sampleRate` > 0'; 22 $show_type = false; 23 break; 24 case 'my-runs': 25 $clause = qsprintf( 26 id(new PhabricatorXHProfSample())->establishConnection('r'), 27 '`sampleRate` = 0 AND `userPHID` = %s', 28 $request->getUser()->getPHID()); 29 $show_type = false; 30 break; 31 case 'manual': 32 $clause = '`sampleRate` = 0'; 33 $show_type = false; 34 break; 35 case 'all': 36 default: 37 $clause = '1 = 1'; 38 $show_type = true; 39 break; 40 } 41 42 $samples = id(new PhabricatorXHProfSample())->loadAllWhere( 43 '%Q ORDER BY id DESC LIMIT %d, %d', 44 $clause, 45 $pager->getOffset(), 46 $pager->getPageSize() + 1); 47 48 $samples = $pager->sliceResults($samples); 49 $pager->setURI($request->getRequestURI(), 'page'); 50 51 $list = new PHUIObjectItemListView(); 52 foreach ($samples as $sample) { 53 $file_phid = $sample->getFilePHID(); 54 55 $item = id(new PHUIObjectItemView()) 56 ->setObjectName($sample->getID()) 57 ->setHeader($sample->getRequestPath()) 58 ->setHref($this->getApplicationURI('profile/'.$file_phid.'/')) 59 ->addAttribute( 60 number_format($sample->getUsTotal())." \xCE\xBCs"); 61 62 if ($sample->getController()) { 63 $item->addAttribute($sample->getController()); 64 } 65 66 $item->addAttribute($sample->getHostName()); 67 68 $rate = $sample->getSampleRate(); 69 if ($rate == 0) { 70 $item->addIcon('flag-6', pht('Manual Run')); 71 } else { 72 $item->addIcon('flag-7', pht('Sampled (1/%d)', $rate)); 73 } 74 75 $item->addIcon( 76 'none', 77 phabricator_datetime($sample->getDateCreated(), $user)); 78 79 $list->addItem($item); 80 } 81 82 $list->setPager($pager); 83 84 return $this->buildStandardPageResponse( 85 $list, 86 array( 87 'title' => pht('XHProf Samples'), 88 'device' => true, 89 )); 90 91 } 92 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |