keasy9 / laravel-hit-statistics
Installs: 12
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/keasy9/laravel-hit-statistics
Requires
- php: ^8.0
 - eseath/sypexgeo: ^2.3
 - fakerphp/faker: ^1.23
 - jaybizzle/laravel-crawler-detect: ^1.3
 - laravel/framework: >=8.0
 
This package is auto-updated.
Last update: 2025-10-29 03:11:14 UTC
README
Установка:
    composer require keasy9/laravel-hit-statistics
    php artisan migrate
    php artisan vendor:publish
Использование:
use Keasy9\HitStatistics\Http\Middleware\CollectHit; Route::middleware(CollectHit::class)->group(function () { //... });
use Keasy9\HitStatistics\Repositories\HitRepository; use Keasy9\HitStatistics\Dto\OrchidAggregationDto; HitRepository::domains()->byDays()->withArchive()->get()->toArray(); // вернёт данные, сгруппированные по дням, включая архивированные данные HitRepository::devices()->byCountries()->get(OrchidAggregationDto::class)->toArray(); // вернёт данные в совместимом формате для вывода в админке orchid/platform
    php artisan hits:archive
        --keep                #не удалять данные, которые попадут в архив
        --type=default        #тип архива из конфига
        --before=""           #архивировать данные до указанной даты. По умолчанию определяется конфигом
        
    php artisan hits:flush
        --before=""           #удалить данные до указанной даты. По умолчанию определяется конфигом
        --type=both           #что удалять:
                              #    data - только хиты
                              #    archive - только архивы
                              #    both - хиты и архивы 
Архивы
Чтобы уменьшить размер хранимых данных на часто посещаемых сайтах, предусмотрена архивация. Архив создаётся за заданный период (день, месяц, год и т.п.) и по заданным аггрегациям. Для одного периода можно создавать разные архивы (по разным аггрегациям). Типы архивов указываются в конфигурации. Например:
- архивировать данные по доменам, с которых были переходы на сайт, группируя за месяц;
 - архивировать данные по устройствам поситетелей и странам;
 
Рекомендуется настроить периодическую архивацию:
namespace App\Console; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; use Keasy9\HitStatistics\Console\Commands\ArchiveHits; class Kernel extends ConsoleKernel { protected function schedule(Schedule $schedule): void { $schedule->command(ArchiveHits::class)->monthly(); } //... }
Конфиденциальность
Пакет собирает следующие данные о посетителях сайта:
- местоположение (по ip),
 - браузер, система и устройство (по заголовку useragent),
 - предыдущий адрес, с которого произошёл переход на сайт (по заголовку http_referer).
 
Для определения местоположения пользователя используется пакет eseath/sypexgeo. В зависимости от указанной в его конфигурации БД местоположений, будут сохранены страна и город посетителя.
Законодательство некоторых стран требует, чтобы сайт предупреждал пользователя или давал ему возможность отказаться от сбора данных. В любом случае, пользователь этого пакета самостоятельно несёт ответственность за все способы его использования.