Release highlights 10.0.0

Jeden z našich dlouhodobých cílů je udržovat technologie Shopsys Frameworku aktuální. V této verzi jsme se zaměřili na povýšení PHP na nejnovější verzi – PHP 8.1. Abychom mohli přemigrovat naše zdrojové kódy na nejnovější verzi PHP, museli jsme nejdříve povýšit i množství knihoven, které v našem kódu využíváme. Pojďme se podívat na ta nejzajímavější povýšení, která jsou zahrnuta v nejnovější verzi Shopsys Frameworku.

PHP

Máme velkou radost, že můžeme pokračovat ve vývoji Shopsys Frameworku s nejnovější PHP verzí. Nyní můžeme využívat nové možnosti, které nová verze nabízí, a těšit se z vylepšeného výkonu. Už byl nejvyšší čas PHP povýšit, protože aktivní podpora předchozí používané verze (7.4) již byla ukončena a podpora z pohledu bezpečnostních oprav bude ukončena v průběhu několika příštích měsíců.

Doctrine knihovny

[#2414] [#2417]

Mimo jiné se jednalo o následující balíčky:

  • doctrine/common (2.8.1 -> 3.2.2)
  • doctrine/migrations (1.8.1 -> 3.4.1)
  • doctrine/persistence (1.3.7 -> 2.4)
  • doctrine/dbal (2.1 -> 3.3.3)

V rámci povýšení Doctrine knihoven jsme také přepsali a vylepšili náš vlastní nástroj pro databázové migrace – shopsys/migrations. V nové verzi je zjednodušen soubor migrations-lock.yaml a výstup z běhu migrací je přepracován tak, aby obsahoval více užitečných informací (např. celkový počet vykonaných SQL dotazů) a méně neužitečných informací (např. byly odstraněny opakující se hlášky “Migration executed but did not result in any SQL statements“).

PHPStan

0.12.76 -> 1.6.8 [#2452]

Kvalita zdrojového kódu pro nás byla vždy velmi důležitá a PHPStan je jedním z úžasných nástrojů, které nám pomáhají udržovat kvalitu zdrojových kódů na co možná nejvyšší úrovni. Nová verze PHPStanu přináší ještě lepší analýzu a zároveň jsme díky povýšení pročistili logy od hlášek o zastaralých funkcích.

Easy Coding Standard

7.3.18 -> 10.2.2 [#2415] [#2435]

Díky možnosti paralelního běhu, který je dostupný v nové verzi, je nyní kontrola standardů opravdu bleskově rychlá. Navíc konfigurace byla přesunuta z yaml do PHP souborů, což velmi zpříjemňuje práci vývojářům (automatické doplňování v IDE a automatická kontrola standardů v konfiguračních souborech je jen začátek, o dalších přínosech této změny si můžete přečíst v článku Tomáše Votruby).

Symfony Flex

1.4. -> 1.17 [#2447]

Původní infrastruktura Flexu byla již vypnuta, proto bylo potřeba povýšit na vyšší verzi, abychom tento nástroj mohli nadále využívat.

PHPUnit

8.0 -> 9.5 [#2424]

Nová verze PHPUnit vyžaduje v testovacích třídách striktní typování všech properties s @inject anotací. Pro tento účel jsme zavedli nové pravidlo do kontroly standardů, a tak je možné potřebná místa opravovat automaticky.

Další zajímavá vylepšení

Twig funkce icon

[#2274]

Vznikla nová Twig funkce (icon), která umožňuje vývojářům jednoduše měnit HTML ikony napříč aplikací. Díky této funkci lze ikony měnit na jednom místě a také jednoduše přidávat nové nebo zkombinovat dohromady více ikon.

Vylepšení nástroje pro opravy anotací

[#2434]

Zapracovali jsme zpětnou vazbu, kterou jsme dostali od projektových vývojářů, kteří tento nástroj denně využívají. Nyní již nástroj dokáže správně generovat @method anotace včetně výchozích hodnot, a to i v podobě konstant. Opravili jsme také aktualizaci již existujících @method a @property anotací.