# Changelog A ninjaMail API klienskönyvtár változásainak jegyzéke. --- ## [0.9a] - 2026-09-28 ### Hozzáadva (Added) - **Modern PHP 8.1+ támogatás:** Szigorú típusosság (`declare(strict_types=1);`), típusos osztálytulajdonságok, skalár és union típusok minden osztályban (`ninjaMail`, `ninjaMailSend`, `ninjaMailSubscription`, `ninjaMailNewsletter`, `ninjaMailCampaign`, `ninjaMailStatistics`). - **Gitea Actions CI/CD automatizáció:** Új `.gitea/workflows/release-test.yaml` munkafolyamat, amely automatikusan ellenőrzi a PHP érvényességet és szintaxist (PHP 8.1, 8.2, 8.3, 8.4 verziókon) minden kiadáskor (`release`), címkénél (`tag`) és push eseménynél külső API hívások nélkül. - **Offline érvényesség-ellenőrzés:** Új `tests/test_validity.php` tesztcsomag a metódusok, típusok és kivételkezelés tesztelésére hálózati forgalom nélkül. - **Anonimizált tesztelő szkript:** Új `test_all.php` futtatható tesztfájl környezeti változókból (`NINJAMAIL_HOST`, `NINJAMAIL_KEY`) konfigurálható, anonimizált tesztadatokkal. - **Kriptográfiailag biztonságos token generálás:** A `login()` metódusban `bin2hex(random_bytes(16))` használata a korábbi gyenge `md5(time())` helyett. ### Módosítva (Changed) - **Főkönyvtár átszervezése:** Az `ng` mappa tartalma átkerült a projekt gyökerébe, az új generációs kód vált a hivatalos kiadássá. - **Terminológia szabványosítása:** A félrevezető „gyár” kifejezés cseréje a szabványos „végpont” (*endpoint*) megnevezésre a kódban és a teljes dokumentációban. - **Dokumentáció egyesítése és felülvizsgálata:** A `README.md` összefésülése és frissítése, a hibás adatok tisztítása (pl. `fekiratkozó` elgépelés, kampányvégpont feladatának pontosítása, hiányzó listakezelési útmutató és hírlevél frissítési adatok pótlása). - **cURL kéréskódolás:** A POST kérések form-urlencoded kódolást (`http_build_query`) használnak, biztosítva a tömbösített és összetett paraméterek (pl. kampány listák `update()`) hibátlan szerveroldali fogadását. - **Kampány-hírlevél összerendelés:** A `ninjaMailCampaign::attach()` metódus mostantól mind a `campaign`, mind az `id` paramétert továbbítja, biztosítva a szerveroldali `relations` végpont kompatibilitását. - **PHP 8.5 kompatibilitás:** A PHP 8.5-ben elavulttá vált `curl_close()` hívás eltávolítása, és üres API válaszok robusztus kezelése JSON szintaxishiba dobása nélkül. ### Eltávolítva (Removed) - Az elavult, nem típusos örökölt kódok (`example.simple.php` és az eredeti gyökér `ninjamail.class.php`) törlésre kerültek az új kiadásokból. - Az `ng` alkönyvtár megszüntetésre került.