File: D:/web/matomo.vdk/plugins/ArchivingMetrics/ArchivingMetrics.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
*/
declare(strict_types=1);
namespace Piwik\Plugins\ArchivingMetrics;
use Piwik\Period;
use Piwik\Segment;
use Piwik\Site;
class ArchivingMetrics extends \Piwik\Plugin
{
public function registerEvents()
{
return [
'CoreAdminHome.archiveReports.start' => 'onArchiveReportsStart',
'CoreAdminHome.archiveReports.complete' => 'onArchiveReportsComplete',
];
}
public function onArchiveReportsStart(
int $idSite,
Period $period,
Segment $segment,
string $plugin,
$report,
bool $isArchivePhpTriggered
): void {
$timer = Timer::getInstance($isArchivePhpTriggered);
$context = $this->buildContext($idSite, $period, $segment, $plugin, $report);
$timer->start($context);
}
/**
* @param int[] $idArchives
*/
public function onArchiveReportsComplete(
int $idSite,
Period $period,
Segment $segment,
string $plugin,
$report,
bool $isArchivePhpTriggered,
array $idArchives,
bool $wasCached
): void {
$timer = Timer::getInstance($isArchivePhpTriggered);
$context = $this->buildContext($idSite, $period, $segment, $plugin, $report);
$timer->complete($context, $idArchives, $wasCached);
}
private function buildContext(int $idSite, Period $period, Segment $segment, string $plugin, $report): Context
{
$site = new Site($idSite);
return new Context($idSite, $period, $segment, $plugin, $report, $site->getTimezone());
}
}