Просмотр исходного кода

#3359 Reset php opcache when cache is cleared

Alex Trofimov 4 лет назад
Родитель
Сommit
6def70d3b9

+ 11 - 1
inc/classes/BxDolCacheUtilities.php

@@ -24,6 +24,7 @@ class BxDolCacheUtilities extends BxDol
             'css' => array('option' => 'sys_template_cache_css_enable'),
             'js' => array('option' => 'sys_template_cache_js_enable'),
             'purifier' => array(),
+            'opcache' => array(),
             'custom' => array(),
         );
     }
@@ -44,6 +45,9 @@ class BxDolCacheUtilities extends BxDol
         if(!isset($this->_aCacheTypes[$sCache]))
             return false;
 
+        if ('opcache' == $sCache)
+            return function_exists('opcache_reset');
+
         return !isset($this->_aCacheTypes[$sCache]['option']) || getParam($this->_aCacheTypes[$sCache]['option']) == 'on';
     }
 
@@ -102,7 +106,13 @@ class BxDolCacheUtilities extends BxDol
                 $oConfig->set('Cache.DefinitionImpl', null);
                 $oHtmlPurifier = new HTMLPurifier($oConfig);
                 $oHtmlPurifier->purify('');
-                break;    
+                $mixedResult = array('code' => 0, 'message' => _t('_adm_dbd_msg_c_clean_success'));
+                break;
+            case 'opcache':
+                if (function_exists('opcache_reset'))
+                    opcache_reset();
+                $mixedResult = array('code' => 0, 'message' => _t('_adm_dbd_msg_c_clean_success'));
+                break;
         }
 
         return $mixedResult;

+ 2 - 1
modules/boonex/english/data/langs/system/en.xml

@@ -637,7 +637,8 @@
     <string name="_adm_dbd_txt_c_clear_purifier"><![CDATA[Clear Purifier cache]]></string>
 	<string name="_adm_dbd_txt_c_js"><![CDATA[JavaScript]]></string>
 	<string name="_adm_dbd_txt_c_clear_js"><![CDATA[Clear JavaScript cache]]></string>
-        <string name="_adm_dbd_txt_c_clear_custom"><![CDATA[Clear Custom cache]]></string>
+    <string name="_adm_dbd_txt_c_clear_custom"><![CDATA[Clear Custom cache]]></string>
+    <string name="_adm_dbd_txt_c_clear_opcache"><![CDATA[Clear Opcache]]></string>
 	<string name="_adm_dbd_err_c_clean_failed"><![CDATA[Failed to clean cache]]></string>
 	<string name="_adm_dbd_msg_c_clean_success"><![CDATA[Cache was successfully cleaned]]></string>
 	<string name="_adm_dbd_msg_c_all_disabled"><![CDATA[All caches are disabled]]></string>

+ 2 - 1
modules/boonex/russian/data/langs/system/ru.xml

@@ -636,7 +636,8 @@
   <string name="_adm_dbd_txt_c_clear_purifier"><![CDATA[Очистить кэш Purifier]]></string>
 	<string name="_adm_dbd_txt_c_js"><![CDATA[JavaScript]]></string>
 	<string name="_adm_dbd_txt_c_clear_js"><![CDATA[Очистить кэш JavaScript]]></string>
-        <string name="_adm_dbd_txt_c_clear_custom"><![CDATA[Очистить специальный кэш]]></string>
+    <string name="_adm_dbd_txt_c_clear_custom"><![CDATA[Очистить специальный кэш]]></string>
+    <string name="_adm_dbd_txt_c_clear_opcache"><![CDATA[Очистить Opcache]]></string>
 	<string name="_adm_dbd_err_c_clean_failed"><![CDATA[Не удалось очистить кэш]]></string>
 	<string name="_adm_dbd_msg_c_clean_success"><![CDATA[Кэш был удачно очищен]]></string>
 	<string name="_adm_dbd_msg_c_all_disabled"><![CDATA[Весь кэш был отключён]]></string>

+ 1 - 0
studio/classes/BxDolStudioDashboard.php

@@ -32,6 +32,7 @@ class BxDolStudioDashboard extends BxTemplStudioWidget
             array('name' => 'css'),
             array('name' => 'js'),
             array('name' => 'purifier'),
+            array('name' => 'opcache'),
             array('name' => 'custom')
         );