# PHPStan — статичний аналіз (рівень 1)

**Дата:** повторна перевірка згідно кроку 6.2 плану міграції (PHP 8.3).  
**Умови:** PHP 8.3, без виправлень коду — тільки список.

**Запуск (без змін у composer.json і lock-файлах):**  
PHPStan не додано в `composer.json`, щоб не ламати `composer install` при старті контейнерів і на проді. Для аналізу запускати через Phar:

```bash
docker compose run --rm --no-deps --entrypoint '' app-83-php sh -c '
  cd /var/www/html && \
  curl -sSLO https://github.com/phpstan/phpstan/releases/latest/download/phpstan.phar && \
  chmod +x phpstan.phar && \
  php phpstan.phar analyse --memory-limit=512M
'
```

---

## Список знахідок (0 помилок) — перевірка під PHP 8.3

Після додавання PHPStan stub-файла для зовнішнього проєкту goapidev (Wialon + TOP_TOKEN) помилки відсутні.

---

## Підсумок по категоріях

- **vivasmarttech** — залежність від зовнішнього проєкту goapidev/goapi. Для PHPStan додано `stubs/phpstan-goapidev.stub.php`, щоб аналіз знав про `GoApi\\Library\\Wialon\\Wialon` і `TOP_TOKEN`.

**Виключено з аналізу:** mqtt (excludePaths).  
**Виправлено раніше:** GeoMinifinder not found; harmonicare saveLog; requireOnce.fileNotFound у vivasmarttech (шлях через env/змінну).  
**Примітка:** user_devices виключено з аналізу (excludePaths).
