PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.12.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.12.1
5.12.1 5.12.0 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 2 weeks ago UIAssetFetcher 2 months ago UIAssetMerger 2 months ago UIAsset.php 2 weeks ago UIAssetCacheBuster.php 2 weeks ago UIAssetCatalog.php 6 months ago UIAssetCatalogSorter.php 2 years ago UIAssetFetcher.php 2 weeks 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 * - PHP version
22 * - Loaded plugins (name and version)
23 * - Latest git hash of the master branch (if available)
24 *
25 * @param string[]|false $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