# Plugin Check

> A Plugin Check (PCP) bővítmény a WordPress.org bővítménytár követelményei és a bevált gyakorlatok szerint ellenőrzi a bővítményed kódját: használata a felületen, WP-CLI-vel és GitHub Actionsben.

A [Plugin Check](https://wordpress.org/plugins/plugin-check/) (rövidítve PCP) a WordPress.org bővítménytár hivatalos ellenőrző bővítménye. Azt nézi meg, megfelel-e a bővítményed a tár követelményeinek, és jelzi a nemzetköziesítés, a hozzáférhetőség, a teljesítmény és a biztonság bevált gyakorlatától való eltéréseket. A tárba beküldés előtt érdemes lefuttatni, de akkor is hasznos, ha a bővítményed sosem kerül a WordPress.org-ra: a biztonsági és a teljesítményellenőrzések a saját, ügyfélnek készített bővítményeknél is felfednek hibákat.

Nem helyettesíti a kézi átvizsgálást, és a sikeres futás nem garantálja a jóváhagyást. A tárba kerüléshez általában a „Plugin repo” kategória összes ellenőrzésén át kell mennie a bővítménynek.

## Telepítés

A bővítmény PHP 7.4-et és WordPress 6.3-at vagy újabbat igényel. A fejlesztői README szerint ne használd éles oldalon, telepítsd a helyi vagy a fejlesztői példányra.

1. A WordPress-adminban nyisd meg a **Bővítmények > Új bővítmény hozzáadása** oldalt.
2. Keress rá a „Plugin Check (PCP)” névre.
3. Telepítsd és aktiváld.

[Bedrock](https://hub.hellowp.io/hu/knowledge-base/developer-tools/bedrock/) projektben a bővítményt Composerrel vedd fel, fejlesztői függőségként (a [WP Packages](https://hub.hellowp.io/hu/knowledge-base/developer-tools/wpackagist/) tárral):

```bash title="Terminál"
composer require wp-plugin/plugin-check --dev
```

## Használat a felületen

A **Tools > Plugin Check** oldalon kiválasztod az ellenőrizendő bővítményt, a kategóriákat, majd elindítod a vizsgálatot. A használathoz jogosultság kell a bővítmények kezeléséhez.

## Használat WP-CLI-vel

A [WP-CLI](https://hub.hellowp.io/hu/knowledge-base/developer-tools/wp-cli/) `wp plugin check` parancsa a bővítmény nevét, egy könyvtár útvonalát vagy egy zip URL-jét is elfogadja:

```bash title="Terminál"
wp plugin check hello.php
wp plugin check /utvonal/a/bovitmenyhez
wp plugin check https://example.com/bovitmeny.zip
```

Alapból csak a statikus ellenőrzések futnak, amelyek a kódot olvassák. A futásidejű ellenőrzések tényleg lefuttatnak részeket a kódból, ezekhez be kell tölteni a bővítmény `cli.php` fájlját:

```bash title="Terminál"
wp plugin check hello.php --require=./wp-content/plugins/plugin-check/cli.php
```

Bedrockban a `wp-content/plugins` helyett a `web/app/plugins` mappa a bővítmények helye.

### Hasznos kapcsolók

| Kapcsoló | Mit csinál |
|---|---|
| `--checks=<ellenőrzések>` | csak a megadott ellenőrzések futnak (vesszővel elválasztva) |
| `--exclude-checks=<ellenőrzések>` | kihagy ellenőrzéseket, a `--checks` után érvényesül |
| `--categories` | kategóriára szűri az ellenőrzéseket |
| `--ignore-codes=<kódok>` | egyes találati kódokat figyelmen kívül hagy |
| `--ignore-warnings`, `--ignore-errors` | elrejti a figyelmeztetéseket vagy a hibákat |
| `--exclude-directories`, `--exclude-files` | további mappák, fájlok kihagyása |
| `--use-pcpignore` | a bővítmény gyökerében lévő `.pcpignore` kizárásait használja, helyi és CI-futtatáshoz |
| `--format=<formátum>` | a kimenet formátuma |
| `--fields=<mezők>` | a megjelenített mezők |

Alapból a `.git`, a `vendor`, a `vendor_prefixed`, a `vendor-prefixed` és a `node_modules` mappa ki van zárva.

A találatok két különböző azonosítóval dolgoznak. Az **ellenőrzés azonosítója** (például `late_escaping`) a `--checks` és az `--exclude-checks` értéke. A **találati kód** (például `missing_composer_json_file`) egy ellenőrzés konkrét megállapítása, ezt a `--ignore-codes` várja. A kódokat így nézheted meg:

```bash title="Terminál"
wp plugin check akismet --format=csv --fields=code,type,severity,message
```

Minden találat típusa `ERROR` vagy `WARNING`, súlyossága 1 (legkisebb) és 10 (legnagyobb) között van.

### Kimeneti formátumok

A `--format` értéke `table` (alap), `csv`, `json` vagy `ctrf`. Mindegyiknek van `strict-` előtagos változata is: `strict-table`, `strict-csv`, `strict-json`, `strict-ctrf`.

### Ellenőrzések és kategóriák

```bash title="Terminál"
wp plugin list-checks
wp plugin list-check-categories
```

A dokumentáció szerinti kategóriák közt van a `general`, a `plugin_repo`, a `security` és a `performance`. A pontos, aktuális listát a fenti parancs adja. Néhány ellenőrzés:

- `late_escaping`: a kimenet escapelése a böngészőnek küldés előtt (biztonság);
- `direct_file_access`: az `ABSPATH` ellenőrzése a közvetlen fájlelérés ellen (biztonság);
- `i18n_usage`: nemzetköziesítési gyakorlatok;
- `enqueued_scripts_size`, `enqueued_styles_size`: az oldalra betöltött szkriptek és stíluslapok együttes mérete a 293 KB-os küszöb alatt marad-e (teljesítmény);
- `plugin_readme`, `plugin_header_fields`: a `readme.txt` és a fejléc követelményei (bővítménytár).

A teljes táblázat a [dokumentációban](https://github.com/WordPress/plugin-check/blob/trunk/docs/checks.md) van.

## Használat GitHub Actionsben

A [WordPress/plugin-check-action](https://github.com/WordPress/plugin-check-action) a találatokat fájlmegjegyzésként írja a [GitHub Actions](https://hub.hellowp.io/hu/knowledge-base/developer-tools/github-actions/) futásának eredményébe. A legegyszerűbb workflow:

```yaml title=".github/workflows/plugin-check.yml"
name: Plugin Check
on:
  pull_request:
  push:
    branches:
      - main

jobs:
  plugin-check:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v7

      - name: Run plugin check
        uses: wordpress/plugin-check-action@v1
```

Ha a bővítményed buildlépést igényel, a `build-dir` mondja meg, melyik mappát vizsgálja. A `categories`, az `exclude-directories` és az `exclude-checks` sortöréssel elválasztott listát vár:

```yaml title=".github/workflows/plugin-check.yml"
      - name: Run plugin check
        uses: wordpress/plugin-check-action@v1
        with:
          build-dir: './tmp-build/sajat-bovitmeny'
          categories: |
            security
            performance
```

Az action alapból minden kategóriát lefuttat. A kódolási szabványokat a [PHPCS](https://hub.hellowp.io/hu/knowledge-base/developer-tools/phpcs-wpcs/) külön ellenőrzi; ha már használod, a Plugin Check PHPCS-alapú ellenőrzéseit kihagyhatod az `exclude-checks` listával.

## Mire figyelj

- **Hamis riasztás előfordul.** A PHPCS-találatokat a kódban megjegyzéssel kihagyhatod, a téves találatot pedig a GitHub-tárolóban jelentheted.
- **Ne éles oldalon futtasd.** A futásidejű ellenőrzések kódot hajtanak végre.
- **A bővítmény más funkciói** (a Plugin Namer, az SVN-ellenőrző és az MI-alapú elemzés) nem szükségesek az alap használathoz; részleteik a WordPress.org oldalon vannak.

## Hasznos linkek

- [Plugin Check a WordPress.org-on](https://wordpress.org/plugins/plugin-check/)
- [GitHub-tároló](https://github.com/WordPress/plugin-check)
- [A `wp plugin check` parancs leírása](https://github.com/WordPress/plugin-check/blob/trunk/docs/CLI.md)
- [Plugin Check Action](https://github.com/WordPress/plugin-check-action)
