HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/web/matomo.vdk/plugins/CoreUpdater/Model.php
<?php

/**
 * Matomo - free/libre analytics platform
 *
 * @link    https://matomo.org
 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
 */

namespace Piwik\Plugins\CoreUpdater;

use Piwik\Filesystem;

class Model
{
    public function getPluginsFromDirectoy($directoryToLook)
    {
        $directories = _glob($directoryToLook . '/plugins/' . '*', GLOB_ONLYDIR);

        $directories = array_map(function ($directory) use ($directoryToLook) {
            return str_replace($directoryToLook, '', $directory);
        }, $directories);

        return $directories;
    }

    public function removeGoneFiles($source, $target)
    {
        Filesystem::unlinkTargetFilesNotPresentInSource($source . '/core', $target . '/core');
        Filesystem::unlinkTargetFilesNotPresentInSource($source . '/libs', $target . '/libs');
        Filesystem::unlinkTargetFilesNotPresentInSource($source . '/vendor', $target . '/vendor');
        Filesystem::unlinkTargetFilesNotPresentInSource($source . '/node_modules', $target . '/node_modules');

        foreach ($this->getPluginsFromDirectoy($source) as $pluginDir) {
            Filesystem::unlinkTargetFilesNotPresentInSource($source . $pluginDir, $target . $pluginDir);
        }
    }
}