vshosting~

Jsme tu všichni hrdě odkojení nettisté. A pak to přišlo, vesmír se sesypal jak domeček z grafických karet, do kanceláře vtrhne náš šéf, tedy (z logiky věci) ten nejmoudřejší, a zařve: “Co když Davida Grudla přejede tatrovka? A to je dost pravděpodobný… Co s náma proboha bude? S přejetým Nette to nikdy nespíchnette…”

A tím to začalo…

Nový PHP framework

Volba nového PHP frameworku padla jednomyslně na Symfony. Pečeme u nás aplikace jak pro vshosting~ (čímž jsou ty internety zas o něco lepší), tak pro jeho klienty. Jedna z nadcházejících výzev je chystané REST API pro nový ticketovací systém. A na to je třeba mít kudly pořádně nabroušené a výpeky božsky redukované.

Jen pro představu, jaká nálož bude v pekáči: verzování s maximálním znovupoužitím již napsaného (zbytečné psaní je zbytečné) a kompatibilitou dopředu, dozadu i nahoru a dolů, strojové generování dokumentace pomocí Swaggera (bývá zvykem, že hlavní a jediná dokumentace se nachází za nefunkčním odkazem, ale není to úplně ono), použití Elasticu (megaúložiště, do nějž se replikuje databáze, aby čtení dat včetně fulltextového vyhledávání v milionech záznamů bylo v řádech desítek milisekund, tedy nechutně rychlé), automatizovaná validace vstupů (důvěřujeme, ale prověřujeme) včetně hlášení všech chyb najednou (čtenář se nesmí napínat, aby nedostal infarkt), automatizovaná validace výstupů (nevěříme ani sami sobě), autonaplnění výstupního objektu daty z Elasticu atd. atd. atd.

Pečeme REST API

Symfony pomůže v mnohém. Grunt nám dá FOSRestBundle, který zajistí základní routování (včetně typu requestu – GET, POST, PUT ad.) dle názvu metody v controlleru a naplnění vstupního objektu příchozími daty.

Pokud použijeme základní symfonní JSON response, můžeme z ní trochou ladných pohybů vykouzlit jak success API response (která přijme výstupní DTO objekt, zvaliduje a šup s ním ven jako JSON), tak error API response (která přijímá všechny API exceptions a z nich automaticky sestaví JSON odpověď včetně HTTP statusu, kódu chyby, chybové hlášky a případně dalších doplňujících dat). Pokud jsme líní a nechceme dokola psát error response do každé metody každého controlleru (a do většiny metod vícekrát), navěsíme na událost typu EXCEPTION listener, v němž danou chybu zpracujeme, a v controllerech pak stačí sázet API výjimky jak jahody do koláče.

S validacemi vstupu nebo výstupu pomůže symfonní validátor, který pomocí jednoduchých anotací zvládá i hutnější validace, nejen obvyklý basic jako datový typ, čas, email… ale také rozsah, porovnávání, IBAN ? a další. Pro vyšší výkon lze samozřejmě validace zamrazit do keše a schovat na příští sezónu. Validaci vstupu stačí provést v rámci requestu FOSRestBundle, a pokud to chceme ještě potunit a nebaví nás sbírat $validationErrors v každé metodě každého controlleru, stačí na request navěsit listener a validaci zpracovat v něm.

Pro serializaci pomůže JMSSerializerBundle, který vstupní JSONy “přeleje” do předem definovaných DTO objektů a výstupní DTO objekty zas převede na JSON, který, čerstvě upečený, vyjede uživateli. Pravidla se definují rovněž anotacemi a k dispozici je řada užitečných fičur, např. parametr obsažen až od určité verze API, automatické přejmenování atd.

Domluvu s Elasticem zajišťuje ElasticsearchBundle, který funguje v principu podobně jako Doktrína: dokumenty v Elasticu jsou reprezentovány entitami v PHP aplikaci a ve výkonném kódu se plní jako obraz dat, který bude uložen v Elasticu samotném. Podporovány jsou samozřejmě i nested objects, takže do Elasticu lze narvat entitu i s jejími dětmi a dalšími příbuznými.

Pro geerování swaggří dokumentace je použit Symfony NelmioApiDocBundle, který (jak jinak než z dokumentačních komentářů) strojově vygeneruje swagger JSON. Anotátor umí mimo jiné roztřídit endpointy do skupin, takže privátní část API nebude ve veřejné dokumentaci, ale třeba také endpoint pouze pro API verze 2 nebude v dokumentaci pro verzi 1.

Závěr všeho se, jak už to tak bývá, ukáže až na závěr. Snad to bude dost propečené a nová aplikace přinese zákazníkům i klukům z technické podpory radost a smích.

Vývojový tým vshosting~

Během 16 let jsme provedli úspěšnou migrací stovky klientů. Pomůžeme i vám.

  1. Domluvte se na konzultaci

    Stačí nám zanechat kontakt. Obratem se vám ozveme.

  2. Bezplatný návrh řešení

    Nezávazně probereme, jak vám můžeme pomoct. Navrhneme řešení na míru.

  3. Profesionální realizace

    Připravíme vám prostředí pro bezproblémovou migraci dle společného návrhu.

Zanechte nám svůj e-mail nebo telefon

Nebo nás kontaktujte napřímo

+420 246 035 835 V provozu 24/7
konzultace@vshosting.cz
Zkopírovat
Obratem se vám ozveme
PŘIDEJTE SE K ÚSPĚŠNÝM FIRMÁM
Ušetřete si čas a napište si o nezávazný audit vašeho technického řešení zdarma.
Ušetřete si čas a napište si o nezávazný audit vašeho technického řešení zdarma.
PŘIDEJTE SE K ÚSPĚŠNÝM FIRMÁM
NÁVRH INFRASTRUKTURY ZDARMA
Nechte si od našich expertů ZCELA ZDARMA A NEZÁVAZNĚ navrhnout serverovou infrastrukturu s kompletní správou. Stačí zanechat svůj e-mail.
Nechte si od našich expertů ZCELA ZDARMA A NEZÁVAZNĚ navrhnout serverovou infrastrukturu s kompletní správou. Stačí zanechat svůj e-mail.
NÁVRH INFRASTRUKTURY ZDARMA
AKCE NA HOSTING JEN DO KONCE MĚSÍCE
Managed server na míru a o 20 % levněji! Zanechte NEZÁVAZNĚ e-mail a nepropásněte šanci na slevu.
Managed server na míru a o 20 % levněji! Zanechte NEZÁVAZNĚ e-mail a nepropásněte šanci na slevu.
AKCE NA HOSTING JEN DO KONCE MĚSÍCE
BEZPLATNÁ KONZULTACE a návrh infrastruktury
Nepropásněte šanci na konzultaci i návrh infrastruktury ZDARMA. Stačí zanechat e-mail.
Nepropásněte šanci na konzultaci i návrh infrastruktury ZDARMA. Stačí zanechat e-mail.
BEZPLATNÁ KONZULTACE a návrh infrastruktury
FREE CONSULTATION and infrastructure design
Don’t miss out on getting a consultation and infrastructure design for FREE. Just leave your email below.
Don’t miss out on getting a consultation and infrastructure design for FREE. Just leave your email below.
FREE CONSULTATION and infrastructure design
TENTO WEBINÁŘ JIŽ PROBĚHL

Chcete dostat zprávu o další webináři? 

Zanechte svůj e-mail.

TENTO WEBINÁŘ JIŽ PROBĚHL
AKCE NA HOSTING JEN DO KONCE MĚSÍCE
Managed server na míru a o 20 % levněji! Zanechte NEZÁVAZNĚ e-mail a nepropásněte šanci na slevu.
Managed server na míru a o 20 % levněji! Zanechte NEZÁVAZNĚ e-mail a nepropásněte šanci na slevu.
AKCE NA HOSTING JEN DO KONCE MĚSÍCE
Pouze do konce měsíce!
NENECHTE SI UTÉCT MIMOŘÁDNOU AKCI
Nechte si zcela nezávazně poslat poukaz na návrh Kubernetes řešení na míru.
Pouze do konce měsíce!
NENECHTE SI UTÉCT MIMOŘÁDNOU AKCI
Nechte si zcela nezávazně poslat poukaz na návrh Kubernetes řešení na míru.
Dozvěděli jste se vše, co vás zajímalo?
Pojďme se pobavit o privátním cloudu na hardwaru HPE. Stačí nám na sebe zanechat kontakt.
Zajímá Vás VMware privátní cloud na špičkovém hardwaru HPE?
Zanechte nám kontakt a můžeme se o něm pobavit více.
JAK PŘIPRAVIT E-SHOP NA VÁNOČNÍ SEZÓNU

Zveme vás na online webinář
Jak připravit e-shop na vánoční sezónu s Ondřejem Flídrem, seniorním infrastrukturním administrátorem vshostingu.

Kdy: 28. 7. 2022 v 11 hodin
Kde: Online
Za kolik: Zdarma

WEBINÁŘ
JAK PŘIPRAVIT E-SHOP NA VÁNOČNÍ SEZÓNU
WEBINÁŘ
Jsme největší experti na managed služby na trhu
Ušetřete si čas, napište si o nezávazný audit vašeho technického řešení zdarma nebo se jen s námi pobavte o možnostech.
Ušetřete si čas, napište si o nezávazný audit vašeho technického řešení zdarma nebo se jen s námi pobavte o možnostech.
Jsme největší experti na managed služby na trhu