コード例 #1
0
 public static function getActiveCacheSpec()
 {
     $spec = new PhabricatorOpcodeCacheSpec();
     // NOTE: If APCu is installed, it reports that APC is installed.
     if (extension_loaded('apc') && !extension_loaded('apcu')) {
         $spec->initAPCSpec();
     } else {
         if (extension_loaded('Zend OPcache')) {
             $spec->initOpcacheSpec();
         } else {
             $spec->initNoneSpec();
         }
     }
     return $spec;
 }
コード例 #2
0
 private function renderCodeBox()
 {
     $cache = PhabricatorOpcodeCacheSpec::getActiveCacheSpec();
     $properties = id(new PHUIPropertyListView());
     $this->renderCommonProperties($properties, $cache);
     return id(new PHUIObjectBoxView())->setHeaderText(pht('Opcode Cache'))->addPropertyList($properties);
 }
コード例 #3
0
 public function handleRequest(AphrontRequest $request)
 {
     $viewer = $this->getViewer();
     $cancel_uri = $this->getApplicationURI('cache/');
     $opcode_cache = PhabricatorOpcodeCacheSpec::getActiveCacheSpec();
     $data_cache = PhabricatorDataCacheSpec::getActiveCacheSpec();
     $opcode_clearable = $opcode_cache->getClearCacheCallback();
     $data_clearable = $data_cache->getClearCacheCallback();
     if (!$opcode_clearable && !$data_clearable) {
         return $this->newDialog()->setTitle(pht('No Caches to Reset'))->appendParagraph(pht('None of the caches on this page can be cleared.'))->addCancelButton($cancel_uri);
     }
     if ($request->isDialogFormPost()) {
         if ($opcode_clearable) {
             call_user_func($opcode_cache->getClearCacheCallback());
         }
         if ($data_clearable) {
             call_user_func($data_cache->getClearCacheCallback());
         }
         return id(new AphrontRedirectResponse())->setURI($cancel_uri);
     }
     $caches = id(new PHUIPropertyListView())->setUser($viewer);
     if ($opcode_clearable) {
         $caches->addProperty(pht('Opcode'), $opcode_cache->getName());
     }
     if ($data_clearable) {
         $caches->addProperty(pht('Data'), $data_cache->getName());
     }
     return $this->newDialog()->setTitle(pht('Really Clear Cache?'))->setShortTitle(pht('Really Clear Cache'))->appendParagraph(pht('This will only affect the current web ' . 'frontend. Daemons and any other web frontends may continue ' . 'to use older, cached code from their opcache.'))->appendParagraph(pht('The following caches will be cleared:'))->appendChild($caches)->addSubmitButton(pht('Clear Cache'))->addCancelButton($cancel_uri);
 }
コード例 #4
0
 private function renderCodeBox()
 {
     $cache = PhabricatorOpcodeCacheSpec::getActiveCacheSpec();
     $properties = id(new PHUIPropertyListView());
     $this->renderCommonProperties($properties, $cache);
     $purge_button = id(new PHUIButtonView())->setText(pht('Purge Caches'))->setHref('/config/cache/purge/')->setTag('a')->setWorkflow(true)->setIcon('fa-exclamation-triangle');
     $header = id(new PHUIHeaderView())->setHeader(pht('Opcode Cache'))->addActionLink($purge_button);
     return id(new PHUIObjectBoxView())->setHeader($header)->addPropertyList($properties);
 }
コード例 #5
0
 protected function executeChecks()
 {
     $code_cache = PhabricatorOpcodeCacheSpec::getActiveCacheSpec();
     $data_cache = PhabricatorDataCacheSpec::getActiveCacheSpec();
     $issues = $code_cache->getIssues() + $data_cache->getIssues();
     foreach ($issues as $issue) {
         $this->addIssue($issue);
     }
 }