PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / trunk
Matomo Analytics – Powerful, Privacy-First Insights for WordPress vtrunk
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / AssetManager / UIAssetCacheBuster.php
matomo / app / core / AssetManager Last commit date
UIAsset 1 year ago UIAssetFetcher 1 month ago UIAssetMerger 1 month ago UIAsset.php 2 years ago UIAssetCacheBuster.php 6 months ago UIAssetCatalog.php 5 months ago UIAssetCatalogSorter.php 2 years ago UIAssetFetcher.php 1 year ago UIAssetMerger.php 1 year ago UIAssetMinifier.php 1 year ago
UIAssetCacheBuster.php
61 lines
1 <?php
2
3 /**
4 * Matomo - free/libre analytics platform
5 *
6 * @link https://matomo.org
7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
8 *
9 * @method static \Piwik\AssetManager\UIAssetCacheBuster getInstance()
10 */
11 namespace Piwik\AssetManager;
12
13 use Piwik\Plugin\Manager;
14 use Piwik\Singleton;
15 use Piwik\Version;
16 class UIAssetCacheBuster extends Singleton
17 {
18 /**
19 * Cache buster based on
20 * - Piwik version
21 * - Loaded plugins (name and version)
22 * - Super user salt
23 * - Latest
24 *
25 * @param string[] $pluginNames
26 * @return string
27 */
28 public function piwikVersionBasedCacheBuster($pluginNames = \false)
29 {
30 static $cachedCacheBuster = null;
31 if (empty($cachedCacheBuster) || $pluginNames !== \false) {
32 $masterFile = PIWIK_INCLUDE_PATH . '/.git/refs/heads/master';
33 $currentGitHash = file_exists($masterFile) ? @file_get_contents($masterFile) : '';
34 $manager = Manager::getInstance();
35 $plugins = !$pluginNames ? $manager->getActivatedPlugins() : $pluginNames;
36 sort($plugins);
37 $pluginsInfo = '';
38 foreach ($plugins as $pluginName) {
39 if ($manager->isPluginLoaded($pluginName)) {
40 $plugin = $manager->getLoadedPlugin($pluginName);
41 $pluginsInfo .= $plugin->getPluginName() . $plugin->getVersion() . ',';
42 }
43 }
44 $cacheBuster = md5($pluginsInfo . \PHP_VERSION . Version::VERSION . trim($currentGitHash ?: ''));
45 if ($pluginNames !== \false) {
46 return $cacheBuster;
47 }
48 $cachedCacheBuster = $cacheBuster;
49 }
50 return $cachedCacheBuster;
51 }
52 /**
53 * @param string $content
54 * @return string
55 */
56 public function md5BasedCacheBuster($content)
57 {
58 return md5($content);
59 }
60 }
61