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
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í.
Čtěte také