S novým rokem zveřejňujeme novou minoritní verzi Shopsys Framework 9.1.0. Na verzi jsme pracovali přibližně šest měsíců a obsahuje kolem 100 Pull Requestů. Změny v nové verzi lze rozdělit do několika oblasti – rozšíření front endového API, zrychlení aplikace a samozřejmě nezbytné opravy chyb a vylepšení kódu. Pro detailní seznam úprav prosím nahlédněte do changelogu.
Co je nového v této verzi Shopsys Frameworku?
Změny
- ReadModel for product detail [#1999] – data o detailu produktu jsou nově získávány z vrstvy Read modelu (více o Read modelu zde).
- ProductDetailView provided by Elasticsearch [#2090] – aplikace nyní udržuje data o produktech v ElasticSearch komponentě, která slouží jako zdroj dat pro poskytování informací o produktech. Hlavní důvod bylo zrychlení aplikace.
- Made parameters overridable by ENV variables [#2055] – vývojáři mohou nově ovlivnit chování aplikace nastavením proměnných prostředí. Řízení aplikace je nyní mnohem jednodušší v CI/CD prostředí. Více informací o konfiguraci SSFW projektu najdete zde.
- Dropped support for PHP versions lower than 7.4.1 [#2109] – protože byla ukončena podpora starších verzí PHP, povýšili jsme na aktuální verzi PHP 7.4.1. Více informací o našem rozhodnutí najdete v samostatném článku zde.
- Load javascripts after content is loaded [#1879] – zrychluje načtení stránky umístěním nedůležitých javascriptů na konec těla stránky.
- Improved acceptance tests [#2099] – přepsali jsme akceptační testy tak, aby bylo mnohem snadnější je používat a udržovat.
- Autocompletion for Phing targets [#2049] – Našeptávání Phing cílů znatelně ulehčí život vývojářům.
- Enabled caching for DomainRouter and LocalizedRouter [#2133] – Routy/Cesty jsou nyní uloženy do souborové vyrovnávací paměti. Snížili jsme tak počet dotazů na úložiště a tím i zrychlili načtení stránky.
- Disable javascript validation for product filter form [#2104]
- Several enhancements of frontend API – několik vylepšení frontendového API:
- Added search for products and categories in frontend API [#2163] – doplněno snadno rozšiřitelné hledání řetězce v produktech a kateriích.
- Added product filter in frontend API [#2156] – výpis produktů může být nově filtrován dle parametrů i jiných atributů.
- Added support to find entity by slug into frontend API [#2150] – vyhledá a vrátí entitu na základě čisté URL.
- Improved API documentation – vylepšená dokumentace fronteendového API pro snažší a rychlejší orientaci.
Opravy
- It is not possible to create a product variant [#2134] – Oprava chyby zamezující vytvoření nové varianty s obrázky.
- Fix cleaning of old redis cache [#2096] – Oprava chyby představené ve verzi 9.0.2. Chyba zamezovala mazání zastaralých záznamů v Redis mezipaměti.
Mnoho dalších změn a vylepšení najdete v changelogu. Jako obvykle zmiňujeme vývojáře, kteří přispěli k vydání nové verze. Děkujeme obzvláště @vitek-rostislav, @stanoMilan, @henzigo, @RostislavKreisinger, @pesektomas, @pk16011990, ale i všem ostatním.
Zvýšení výkonu verze SSFW 9.1.0
Ve vydané verzi jsme investovali hodně úsilí do zrychlení aplikace. Soustředili jsme se zejména na snížení počtu dotazů na úložiště a použití mezipaměti pro data s nízkou frekvencí změn.
V grafech níže najdete vizuální formát změřených dat. V obou grafech porovnáváme rychlost poslední vydané [9.1.0], poslední majoritní verze [9.0.0] a poslední LTS verze [7.3.5] (dlouhodobě podporovanou verzi)
První graf ukazuje pro jednoho uživatele, druhý graf ukazuje hodnoty 32 paralelních uživatelů. Verze 9.1.0 je průměrně přibližně o 35% rychlejší než verze 7.3.5 LTS a přibližně o 40 % rychlejší než verze 9.0.0. Prosím berte na vědomí, že jsme data získali na testovacím prostředí. V produkci téměř určitě naměříte rozdílné hodnoty na různých stránkách