---
type: JS Module
title: main.mjs
resource: npm/rules/php/main.mjs
docgen:
  crc: a2c44b0c
  model: omlx/gemma-4-e4b-it-OptiQ-4bit
  score: 100
---

## Огляд

Скрипт виконує перевірку коду відповідно до правила `php.mdc`. Він запускає `composer audit` для перевірки залежностей, а також, якщо встановлені, виконує PHPStan, Psalm, PHP-CS-Fixer (у режимі dry-run) та PHPCS зі стандартом Security. Робота скрипта ґрунтується на конфігурації, визначеній у `composer.json`. Скрипт пропускає запуск інструменту, якщо відповідний виконуваний файл відсутній у `vendor/bin/`. Якщо `composer.json` відсутній у корені, інструменти не запускаються.

## Поведінка

run виконує стандартну перевірку, застосовуючи правила до контексту.
getPhpcsCodePaths визначає шляхи до каталогів коду для PHPCS, перевіряючи типові директорії (`app`, `src`, `lib`, `public`, `www`) або кореневий каталог.
runPhpLintSteps виконує послідовність перевірок: `composer audit`, PHP-CS-Fixer (dry-run), phpcs (Security), PHPStan та Psalm, пропускаючи кроки, якщо відповідні інструменти відсутні.
lint оркеструє виконання кроків PHP-лінтування для всього репозиторію.

## Публічний API

run — головна точка входу для виконання правил (перевірка логіки застосування до JS-задач, політик та посилань MDC).
getPhpcsCodePaths — Визначає шляхи до коду, які має аналізувати PHPCS.
runPhpLintSteps — Виконує етапи лінтингу, включаючи аудит `composer`, `php-cs-fixer`, `phpstan` та `psalm`.
lint — Координує фазу лінтингу, виконуючи аудит `composer`, перевірку стилю коду (`php-cs-fixer`) та аналіз статичних аналізаторів (`phpstan`/`psalm`).

## Гарантії поведінки

- Read-only: не виконує операцій запису (ФС/БД).
- Кешує результати в межах одного прогону.
- Свідомо пропускає шляхи: `.git`, `node_modules`.
