# Verziószámozás és PHP 8.0 és 8.5 közötti kompatibilitás

> Mit jelent a MAJOR.MINOR.PATCH számozás, mi a hotfix és a béta, melyik frissítés települ automatikusan, és mi a helyzet a PHP 8.4-gyel és 8.5-tel.

## Verziószámozás

A Gravity Forms és a kiegészítők közös számozási rendszert használnak. A verziószámból már a változásnapló elolvasása előtt látszik, mekkora változásra számíthatsz. A rendszer a szemantikus verziózásból indul ki, de nem követi annak pontos leírását. A régebbi kiadások számai nem változtak, ezért egy ideig keveredhet a régi két- vagy háromjegyű és az új négytagú szám. Mindkettő érvényes.

### Felépítés

A legtöbb kiadás alakja **MAJOR.MINOR.PATCH**. Mindegyik tag egész szám, és ha az egyik nő, a következők nullázódnak. Az 1.2.3 után például az 1.2.4, az 1.3.0 vagy a 2.0.0 következhet.

| Tag | Mikor nő | Automatikus frissítés |
|---|---|---|
| MAJOR | Olyan változás, ami működést törhet el, például egy szűrő eltávolítása vagy új viselkedése. | Nem, kézzel kell frissíteni a **Frissítések** vagy a **Telepített bővítmények** oldalon. |
| MINOR | Visszafelé kompatibilis új funkció, esetleg korábbi hotfixek összevonása. | Igen |
| PATCH | Visszafelé kompatibilis hibajavítás, esetleg korábbi hotfixek összevonása. | Igen |

### Hotfix

A hotfix a kiadott verzió után egy negyedik számot kap: **MAJOR.MINOR.PATCH.HOTFIX**. Egy konkrét hibát vagy kritikus biztonsági problémát javít. A 2.9.12.1 például a 2.9.12 után felmerült hibát javítja.

- A hotfix általában nem kerül az automatikus frissítésbe, kézzel kell telepíteni. A letöltést a támogatástól kapod. Kivétel, ha a biztonsági csapat szerint egy sérülékenység miatt sürgős.
- Csak akkor telepítsd, ha a te oldaladat érintő hibát javít, vagy a támogatás kéri. Különben várd meg a következő patch, minor vagy major kiadást.
- Ha a javítás beválik, a következő kiadásba „összevonják”: a negyedik szám eltűnik, a hotfixek változásnapló-bejegyzései egyetlen bejegyzésbe kerülnek. A 2.8.19.1 és a 2.8.19.2 például a 2.8.20-ba vagy a 2.9-be olvadhat.

### Béta és kiadásjelölt

Az előzetes kiadás száma végén kötőjel, kulcsszó, pont és egész szám áll: **MAJOR.MINOR.PATCH-kulcsszó.szám**, például `1.0.0-beta.1` vagy `1.0.0-rc.1`. A szám azt a kiadást jelöli, amely felé az előzetes verzió tart.

Az előzetes kiadások a szokásos terjesztésen kívül érhetők el, kézzel kell letölteni és telepíteni őket, automatikusan nem frissülnek. Ha frissítesz egy ilyen verziót, a legújabb stabil kiadásra kerülsz.

### Összefoglaló

| Típus | Tartalom | Automatikus frissítés |
|---|---|---|
| Major (pl. 3.0.0) | Új funkció vagy javítás, ami módosíthat vagy eltörhet meglévő működést. | Nem |
| Minor (pl. 6.1.0) | Visszafelé kompatibilis új funkció és javítás. | Igen |
| Patch (pl. 1.8.2) | Visszafelé kompatibilis javítás. | Igen |
| Hotfix (pl. 1.8.1.1) | Egy konkrét hibát javító közbenső kiadás, a következő nem hotfix kiadásba olvad. | Nem |
| Béta (pl. 3.0.0-beta.3) | Előzetes kiadás tesztelésre. | Nem |
| Kiadásjelölt (pl. 4.0.0-rc.1) | A fejlesztés végéhez közeli előzetes kiadás, még követheti másik. | Nem |

Az automatikus frissítés nem minden oldalon indul egyszerre, a kiadás fokozatosan érkezhet.

## PHP 8.5 kompatibilitás

A PHP 8.5 nagyobb kiadás, új funkciókkal (URI-bővítmény, csővezeték-operátor, tulajdonságok módosítása klónozáskor). A WordPress 6.9-es és újabb kiadásai támogatják. A Gravity Forms kompatibilis a PHP 8.5-tel.

Ha a PHP 8.5-tel összefüggő hibát találsz, jelezd a támogatásnak. A korábban naplózott hiba, amely a legújabb kiadásban már javítva van:

- `Deprecated: Non-canonical cast (double) is deprecated, use the (float) cast instead`

## PHP 8.4 kompatibilitás

A PHP 8.4 nagyobb kiadás, jelentős új funkciókkal és változásokkal. A WordPress 6.7-es és újabb kiadásai támogatják. A Gravity Forms alapja igazoltan kompatibilis a PHP 8.4-gyel, a kiegészítők tesztelése még folyamatban van a teljes kompatibilitás érdekében.

Ha a saját tesztelésed során PHP 8.4-gyel összefüggő hibát találsz, jelezd a támogatásnak. Jelenleg nincs ismert hiba.

## PHP 8.3 kompatibilitás

A PHP 8.3 nagyobb kiadás, jelentős változásokkal. A WordPress 6.4-es és újabb kiadásai támogatják. A Gravity Forms kompatibilis a PHP 8.3-mal.

Ha a saját tesztelésed során PHP 8.3-mal összefüggő, itt nem szereplő hibát találsz, jelezd a támogatásnak. A korábban naplózott hibák a legújabb kiadásban már javítva vannak:

- `PHP Deprecated: Function utf8_encode() is deprecated` az űrlapszerkesztő megjelenítőjében (`class-gf-form-editor-renderer.php`): a 2.9.8-as kiadásban javítva.
- ugyanez a figyelmeztetés az `export.php` fájlban: a 2.9.8-as kiadásban javítva.

## PHP 8.2 kompatibilitás

A PHP 8.2 nagyobb kiadás sok változással. A WordPress 6.1-es és újabb kiadásai támogatják. A Gravity Forms kompatibilis a PHP 8.2-vel, és az alább felsorolt ismert hibák mind javítva vannak a megfelelő bővítmények legújabb kiadásaiban.

Ha itt nem szereplő, PHP 8.2-vel összefüggő hibát találsz, jelezd a támogatásnak. A korábban naplózott hibák:

- `Creation of dynamic property Gravity_Forms\Gravity_Forms\Settings\Fields\Select::$tooltip is deprecated` (`includes/settings/fields/class-base.php`)
- `Creation of dynamic property GFMailChimp::$delayed_payment_integration is deprecated` (`includes/addon/class-gf-feed-addon.php`)
- `Using ${var} in strings is deprecated, use {$var} instead` a Lista mező fájljában (`includes/fields/class-gf-field-list.php`)
- ugyanez a figyelmeztetés az Ismétlő mező fájljában (`includes/fields/class-gf-field-repeater.php`)

## PHP 8.1 kompatibilitás

A Gravity Forms kompatibilis a PHP 8.1-gyel. Jelenleg nincs ismert PHP 8.1-es hiba. Az alábbi, korábban naplózott hibák a megadott kiadásokban javítva lettek.

Javítva a 2.6.1.2-es kiadásban:

- a `GF_API_Response::jsonSerialize()`, a `GF_Field` és a beállításmezők alaposztályának `ArrayAccess` metódusai (`offsetExists`, `offsetGet`, `offsetSet`, `offsetUnset`) visszatérési típusára vonatkozó figyelmeztetések;
- a `version_compare()`, `json_decode()`, `strpos()`, `str_replace()` és `htmlspecialchars()` függvények „null átadása” figyelmeztetései több fájlban (kiegészítő-alaposztály, `forms_model.php`, `gravityforms.php`, beállításmezők, rendszerállapot-frissítő, `export.php`);
- a licenc API-válaszának `Serializable` interfész miatti figyelmeztetése;
- a `FILTER_SANITIZE_STRING` konstans elavulása a duplikált beküldéseket kezelő osztályban.

Javítva a 2.7.3-as kiadásban: a `dirname()` és a `basename()` „null átadása” figyelmeztetése a kiegészítő-alaposztályban.

Javítva a 2.7.10-es kiadásban: a `strpos()` és a `str_replace()` „null átadása” figyelmeztetése az erőforrás-feldolgozóban, az automatikus frissítőben és a `common.php` fájlban.

Ha itt nem szereplő, PHP 8.1-gyel összefüggő hibát találsz, jelezd a támogatásnak.

## PHP 8.0 kompatibilitás

A PHP 8.0 nagyobb kiadás, sok változással. A WordPress 5.6-os és újabb kiadásai támogatják. A Gravity Forms kompatibilis a PHP 8.0-val, és az alább felsorolt ismert hibák mind javítva vannak.

Ha saját tesztelésed során PHP 8.0-val összefüggő hibát találsz, jelezd a támogatásnak. A korábban jelentett és javított hibák:

- `version_compare()` végzetes hiba a `gravityforms.php` fájlban: javítva a 2.4.23-as kiadásban.
- „Unknown named parameter" végzetes hiba a `class-gf-addon.php` fájlban a szkriptek betöltésekor: javítva a 2.4.23-as kiadásban.
- Több „required parameters following optional parameter" elavulási figyelmeztetés a Gravity Forms magjában és a kiegészítőkben: javítva a 2.5-ös kiadásban és a kiegészítők különböző frissítéseiben.
- „usort() returning bool from comparison function is deprecated" figyelmeztetés a `form_list.php` fájlban: javítva a 2.4.23-as kiadásban.
- Elkapatlan `ValueError`: az `array_combine()` kulcs- és értéktömbje nem azonos elemszámú a `class-gf-field-date.php` fájlban: javítva a 2.5.16.3-as kiadásban.
