コード例 #1
1
/**
 * Flush the OPcache whenever an upgrade occurs.
 *
 * @since 160620 Adding support for OPcache flushing.
 */
function ___wp_sharks_core_rv_on_upgrader_process_complete__on_shutdown()
{
    // NOTE: Avoid relying on objects in the shutdown phase.
    // PHP's shutdown phase is known to destruct objects randomly.
    if (function_exists('opcache_reset')) {
        @opcache_reset();
    }
}
コード例 #2
0
 public function purgeOPcache()
 {
     if (!extension_loaded('Zend OPcache')) {
         return;
     }
     opcache_reset();
 }
コード例 #3
0
ファイル: HomeController.php プロジェクト: BePsvPT/CCU-Plus
 /**
  * Reset opcache.
  *
  * @param Request $request
  * @return \Illuminate\Http\JsonResponse
  */
 public function opcacheReset(Request $request)
 {
     if ('127.0.0.1' === $request->ip()) {
         opcache_reset();
     }
     return response()->json('', 200);
 }
コード例 #4
0
 /**
  * Returns all supported and active opcaches
  *
  * @return array Array filled with supported and active opcaches
  */
 public function getAllActive()
 {
     $xcVersion = phpversion('xcache');
     $supportedCaches = array('OPcache' => array('active' => extension_loaded('Zend OPcache') && ini_get('opcache.enable') === '1', 'version' => phpversion('Zend OPcache'), 'canReset' => TRUE, 'canInvalidate' => function_exists('opcache_invalidate'), 'error' => FALSE, 'clearCallback' => function ($fileAbsPath) {
         if ($fileAbsPath !== NULL && function_exists('opcache_invalidate')) {
             opcache_invalidate($fileAbsPath);
         } else {
             opcache_reset();
         }
     }), 'WinCache' => array('active' => extension_loaded('wincache') && ini_get('wincache.ocenabled') === '1', 'version' => phpversion('wincache'), 'canReset' => TRUE, 'canInvalidate' => TRUE, 'error' => FALSE, 'clearCallback' => function ($fileAbsPath) {
         if ($fileAbsPath !== NULL) {
             wincache_refresh_if_changed(array($fileAbsPath));
         } else {
             // No argument means refreshing all.
             wincache_refresh_if_changed();
         }
     }), 'XCache' => array('active' => extension_loaded('xcache'), 'version' => $xcVersion, 'canReset' => !ini_get('xcache.admin.enable_auth'), 'canInvalidate' => FALSE, 'error' => FALSE, 'clearCallback' => function ($fileAbsPath) {
         if (!ini_get('xcache.admin.enable_auth')) {
             xcache_clear_cache(XC_TYPE_PHP);
         }
     }));
     $activeCaches = array();
     foreach ($supportedCaches as $opcodeCache => $properties) {
         if ($properties['active']) {
             $activeCaches[$opcodeCache] = $properties;
         }
     }
     return $activeCaches;
 }
コード例 #5
0
ファイル: DisableOpcache.php プロジェクト: ixudra/core
 /**
  * Resets the opcache if it is available on the server and if we are not on a production server. This can be very
  * useful for you are working locally and you don't want to deal with cached responses from the server. This
  * feature is excluded from production environments since it is typically desired to use as much caching as
  * possible in order to improve the user experience
  *
  * @param $request
  * @param callable $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     if (env('APP_ENV') != 'production' && function_exists('opcache_reset')) {
         opcache_reset();
     }
     return $next($request);
 }
コード例 #6
0
ファイル: Api.php プロジェクト: kmvan/wordpoi
 public static function setTimestamp($value = null)
 {
     if (function_exists('\\opcache_reset')) {
         \opcache_reset();
     }
     return $value;
 }
コード例 #7
0
 /**
  * Initialize the ClearCache-Callbacks
  *
  * @return void
  */
 protected static function initialize()
 {
     self::$clearCacheCallbacks = array();
     // Zend OpCache (built in by default since PHP 5.5) - http://php.net/manual/de/book.opcache.php
     if (extension_loaded('Zend OPcache') && ini_get('opcache.enable') === '1') {
         self::$clearCacheCallbacks[] = function ($absolutePathAndFilename) {
             if ($absolutePathAndFilename !== null && function_exists('opcache_invalidate')) {
                 opcache_invalidate($absolutePathAndFilename);
             } else {
                 opcache_reset();
             }
         };
     }
     // WinCache - http://www.php.net/manual/de/book.wincache.php
     if (extension_loaded('wincache') && ini_get('wincache.ocenabled') === '1') {
         self::$clearCacheCallbacks[] = function ($absolutePathAndFilename) {
             if ($absolutePathAndFilename !== null) {
                 wincache_refresh_if_changed(array($absolutePathAndFilename));
             } else {
                 // Refresh everything!
                 wincache_refresh_if_changed();
             }
         };
     }
     // XCache - http://xcache.lighttpd.net/
     // Supported in version >= 3.0.1
     if (extension_loaded('xcache')) {
         self::$clearCacheCallbacks[] = function ($absolutePathAndFilename) {
             // XCache can only be fully cleared.
             if (!ini_get('xcache.admin.enable_auth')) {
                 xcache_clear_cache(XC_TYPE_PHP);
             }
         };
     }
 }
コード例 #8
0
 /**
  * {@inheritDoc}
  */
 function purge()
 {
     // Purge all phpbb cache files
     try {
         $iterator = new \DirectoryIterator($this->cache_dir);
     } catch (\Exception $e) {
         return;
     }
     foreach ($iterator as $fileInfo) {
         if ($fileInfo->isDot()) {
             continue;
         }
         $filename = $fileInfo->getFilename();
         if ($fileInfo->isDir()) {
             $this->remove_dir($fileInfo->getPathname());
         } else {
             if (strpos($filename, 'container_') === 0 || strpos($filename, 'url_matcher') === 0 || strpos($filename, 'sql_') === 0 || strpos($filename, 'data_') === 0) {
                 $this->remove_file($fileInfo->getPathname());
             }
         }
     }
     unset($this->vars);
     unset($this->sql_rowset);
     unset($this->sql_row_pointer);
     if (function_exists('opcache_reset')) {
         @opcache_reset();
     }
     $this->vars = array();
     $this->sql_rowset = array();
     $this->sql_row_pointer = array();
     $this->is_modified = false;
 }
コード例 #9
0
ファイル: InstallerController.php プロジェクト: sdaoudi/rimbo
 /**
  * Constructor.
  */
 public function __construct()
 {
     if (function_exists('opcache_reset')) {
         opcache_reset();
     }
     $this->config = file_exists($this->configFile);
 }
コード例 #10
0
ファイル: Installer.php プロジェクト: pagekit/pagekit
 public function __construct(Application $app)
 {
     $this->app = $app;
     if (function_exists('opcache_reset')) {
         opcache_reset();
     }
     $this->config = file_exists($this->configFile);
 }
コード例 #11
0
ファイル: Callback.php プロジェクト: imdaqian/PingFramework
 /**
  * 当socket服务启动时,回调此方法
  */
 public static function onStart()
 {
     echo 'swoole start, swoole version: ' . SWOOLE_VERSION . PHP_EOL;
     //FIXME 完善opcode  清理功能
     if (extension_loaded('Zend OPcache')) {
         opcache_reset();
     }
 }
コード例 #12
0
 public function main()
 {
     if (opcache_reset()) {
         $this->success('Opcache clear complete');
     } else {
         $this->err("Error : Opcache clear failed");
     }
 }
コード例 #13
0
 protected function export()
 {
     $fileData = '<?php ' . "\n return " . var_export($this->_activePlugins, true) . ';';
     file_put_contents($this->configFile, $fileData);
     if (function_exists('opcache_reset')) {
         opcache_reset();
     }
 }
コード例 #14
0
 public function reset_call()
 {
     if (isset($_POST['opcache_reset'])) {
         opcache_reset();
         error_log('OP Cache Reset call made');
     }
     die;
 }
コード例 #15
0
ファイル: OpCache.php プロジェクト: distilleries/expendable
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request $request
  * @param  \Closure $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     if ($this->app->environment() != 'production') {
         if (function_exists('opcache_reset')) {
             opcache_reset();
         }
     }
     return $next($request);
 }
コード例 #16
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     if (function_exists('opcache_reset')) {
         opcache_reset();
         $this->info("Done Clear PHP Opcode Cache, have a good day.");
     } else {
         $this->info("You haven't install PHP Opcode Cache yet, no need to run this command!");
     }
 }
コード例 #17
0
ファイル: Config.php プロジェクト: reliv/rcm-install
 protected function writeConfig()
 {
     $writer = new PhpArray();
     $writer->toFile('data/rcm/config.php', $this->config, true);
     chmod('data/rcm/config.php', 0666);
     if (extension_loaded('Zend OPcache')) {
         opcache_reset();
     }
 }
コード例 #18
0
 /**
  * Allows to clear the internal php opcache. Listens to EVENT_OPCACHE_RESET
  * @param OnInteractionEvent The event to listen to
  */
 public static final function opcacheReset(\System\System\Interaction\Event\OnInteractionEvent $event)
 {
     $msg = $event->getMessage();
     if ($msg->getType() == \System\System\Interaction\MessageType::TYPE_SYSTEM && $msg->getMessage() == SystemInteractionEventEvent::EVENT_OPCACHE_RESET) {
         $reset = opcache_reset();
         $response = new \System\System\Interaction\Response($msg, $reset ? 'OK' : 'Error');
         $event->addResponse($response);
     }
 }
コード例 #19
0
ファイル: FileManager.php プロジェクト: devisephp/cms
 /**
  * Deletes cache in PHP caching module(s)
  * @return boolean 
  */
 private function clearCache()
 {
     // Prevent caching if opcache is present
     if (function_exists('opcache_reset')) {
         opcache_reset();
         return true;
     }
     return false;
 }
コード例 #20
0
ファイル: OpCache.php プロジェクト: WLR86/f3-admin
 public function reset()
 {
     try {
         opcache_reset();
     } catch (\Exception $e) {
         \Dsc\System::addMessage($e->getMessage(), 'error');
     }
     $this->app->reroute('/admin/cache/opcache');
 }
コード例 #21
0
ファイル: Utils.php プロジェクト: GerDner/luck-docker
 /**
  * Clear opcode caches to make sure that the
  * updated files are used in the following requests.
  */
 public static function clearOpcodeCache()
 {
     if (function_exists('opcache_reset')) {
         opcache_reset();
     }
     if (function_exists('apc_clear_cache')) {
         apc_clear_cache();
         apc_clear_cache('user');
     }
 }
コード例 #22
0
 /**
  * @return string
  */
 private static function clearOpcodeCache()
 {
     if (function_exists('opcache_reset') && opcache_reset()) {
         return 'Zend OPcache: success.';
     }
     if (function_exists('apc_clear_cache') && apc_clear_cache('opcode')) {
         return 'APC Opcode Cache: success.';
     }
     throw new \RuntimeException('Opcode Cache: failure.');
 }
コード例 #23
0
ファイル: Swoole.php プロジェクト: qai41/zphp
 public function onWorkerStart($server, $workerId)
 {
     if ($workerId >= ZConfig::getField('socket', 'worker_num')) {
         swoole_set_process_name(ZConfig::get('project_name') . " server task  num: {$server->worker_id} pid " . $server->worker_pid);
     } else {
         swoole_set_process_name(ZConfig::get('project_name') . " server worker  num: {$server->worker_id} pid " . $server->worker_pid);
     }
     if (function_exists('opcache_reset')) {
         opcache_reset();
     }
 }
コード例 #24
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     opcache_reset();
     $adapter = new FastCGI('/dev/shm/php-cgi.sock');
     $cache = new CacheTool();
     $cache->setAdapter($adapter);
     $cache->addProxy(new Proxy\OpcacheProxy());
     $cache->addProxy(new Proxy\PhpProxy());
     $cache->opcache_reset();
     echo 'a';
 }
コード例 #25
0
ファイル: server.php プロジェクト: sukui/swoole_auto_reload
 public function onWorkerStart($server, $worker_id)
 {
     global $argv;
     opcache_reset();
     include_once dirname(__FILE__) . "/test/test.php";
     if ($worker_id >= $this->_server->setting['worker_num']) {
         swoole_set_process_name("php {$argv[0]} task worker");
     } else {
         swoole_set_process_name("php {$argv[0]} event worker");
     }
 }
コード例 #26
0
 /**
  * 
  */
 static function clearFilesCache()
 {
     if (function_exists('clearstatcache')) {
         clearstatcache();
     }
     if (function_exists('opcache_reset')) {
         opcache_reset();
     }
     if (function_exists('apc_clear_cache')) {
         apc_clear_cache();
     }
 }
コード例 #27
0
 public function purge()
 {
     $this->emptyFolder(JPATH_SITE . '/cache');
     $this->emptyFolder(JPATH_ADMINISTRATOR . '/cache');
     $cache = $this->getCache();
     if (isset($cache->options['storage']) && $cache->options['storage'] != 'file') {
         $cache->clean(null, 'all');
     }
     if (extension_loaded('Zend OPcache')) {
         opcache_reset();
     }
 }
コード例 #28
0
ファイル: Utils.php プロジェクト: antecedent/patchwork
function clearOpcodeCaches()
{
    if (function_exists('opcache_reset')) {
        opcache_reset();
    }
    if (ini_get('wincache.ocenabled')) {
        wincache_refresh_if_changed();
    }
    if (ini_get('apc.enabled') && function_exists('apc_clear_cache')) {
        apc_clear_cache();
    }
}
コード例 #29
0
 /**
  * Cache action.
  *
  * @param string $token A configured token
  *
  * @return Response
  *
  * @throws AccessDeniedHttpException
  */
 public function cacheAction($token)
 {
     if ($this->token == $token) {
         if (version_compare(PHP_VERSION, '5.5.0', '>=') && function_exists('opcache_reset')) {
             opcache_reset();
         } elseif ($this->hasApc()) {
             apc_clear_cache('user') && apc_clear_cache();
         }
         return new Response('ok', 200, array('Cache-Control' => 'no-cache, must-revalidate', 'Content-Length' => 2));
     }
     throw new AccessDeniedHttpException('invalid token');
 }
コード例 #30
0
 /**
  * @Route("/opcache-clear/{version}/", name="_enuygun_com_opcache_clear")
  * @param Request $request
  * @param $version
  * @return array
  */
 public function opcacheClearAction(Request $request, $version)
 {
     $ipFilter = $this->container->getParameter('enuygun_com_opcache_clear.ip_filter');
     if (!empty($ipFilter) && !in_array($request->getClientIp(), $ipFilter)) {
         return new JsonResponse(array('success' => false, 'message' => $request->getClientIp() . ' is not allowed'), 400, array('x-enuygun-opcache-clear' => json_encode(array('success' => false, 'message' => $request->getClientIp() . ' is not allowed', 'version' => $version))));
     }
     if (!function_exists('opcache_reset')) {
         throw new \RuntimeException('Opcache extension is not enabled.');
     }
     $success = opcache_reset();
     $message = 'Opcache cleared: ' . ($success ? 'success' : 'failed');
     return new JsonResponse(array('success' => $success, 'message' => $message), 200, array('x-enuygun-opcache-clear' => json_encode(array('success' => $success, 'message' => $message, 'version' => $version))));
 }