Files
archived-doctrine-website/lib/Projects/GetTotalDownloads.php
2023-09-26 22:47:30 +02:00

29 lines
640 B
PHP

<?php
declare(strict_types=1);
namespace Doctrine\Website\Projects;
use Doctrine\Website\Model\Project;
use Doctrine\Website\Repositories\ProjectRepository;
final readonly class GetTotalDownloads
{
/** @param ProjectRepository<Project> $projectRepository */
public function __construct(
private ProjectRepository $projectRepository,
) {
}
public function __invoke(): int
{
$totalDownloads = 0;
foreach ($this->projectRepository->findAll() as $project) {
$totalDownloads += $project->getProjectStats()->getTotalDownloads();
}
return $totalDownloads;
}
}