Symfony workshop - flashback
Symfony / Workshop
V priebehu februára sa konal workshop s naším vychyteným prednášajúcim Matejom o PHP frameworkoch. Mohli ste sa dozvedieť, načo taký framework slúži, ako programátorom pomáha a prečo ich je vlastne toľko veľa. Reč prišla aj na spoločné znaky ako OOP, MVC a samozrejme sme aj niečo nákodili, aby klávesnice neostali na okrasu :)
Ak ťa zaujíma ako prebiehajú naše workshopy, možno ťa práve týmto článkom presvedčíme, aby si ten najbližší strávil s nami. Všetky pripravené si môžeš pozrieť tu.
Tvorba webových aplikácii nie je nič jednoduché, našťastie máme mnoho šikovných programátorov, ktorí sa touto úlohou zaoberajú už niekoľko rokov. Jedným z nich je aj náš Matej, developer, hudobník a milovník zvierat, ktorý bol prednášajúcim na workshope o PHP frameworkoch. Jeho cieľom bolo oboznámiť ľudí s existenciou frameworkov, ktoré uľahčujú tvorbu webových aplikácii a priblíženie jedného z nich s názvom Symfony. Na základe pozitívnych reakcií usudzujeme, že sa mu to úspešne podarilo :)
Workshop sa niesol v priateľskom duchu v našej modrej zasadačke, kde návštevníkov privítal Matejov hektický pokus o pripojenie sa na projektor. Vyzerá to tak že technika občas sklame aj ITčkárov. Začať treba s vtipom a vďaka uvoľnenej atmosfére sú všetci účastníci zapájaní do interakcie s prednášajúcim. Prvými otázkami ako "Počuli ste už slovo famework ? Naskakuje vám husia koža pri skratke OOP ?" zisťuje úroveň znalostí, aby vedel prispôsobiť obsah svojej prezentácie.
"Najpoužívanejšie web frameworky su postavené práve na OOP a architektúre MVC, preto som považoval za dôležité ich na začiatku workshopu priblžiť."
Prvá hodina workshopu bola viac teoretická, zameraná na to, aby všetci účastníci workshopu boli na jednej vlne a mali aspoň približnú predstavu o tom ako vytvoriť triedu, objekt, čo je to controller, načo slúži framework a prečo programovanie vo vanilla php je síce chvályhodné, ale určite časovo neefektívne. V dnešnej uponáhľanej dobe je zbytočné programovať stále rovnaké funkcionality dookola. Veci ako registrácia, prihlásenie, vykreslenie menu, to všetko už predsa niekto pred nami riešil a vytvoril, stačí len ak to prepoužijeme, a to je vlastne hlavná filozofia frameworkov.
Po teoretickom úvode prišiel čas, na ktorý všetci nedočkavo čakali, využitie nových znalostí v praxi => nainštalovanie php frameworku na svoje zariadenia schopné internetového pripojenia, spustenie webového servera a webovej aplikácie a už obligátne programátorské hello world alebo v našom podaní "ahoj workshop". Ukázalo sa, že pomerne jednoduchý postup nakoniec zabral ľudom pol hodinu času. Nabudúce to snáď doma pri telke pôjde lepšie :) Ako bolo spomenuté vyššie, za vybraný PHP framework sme zvolili populárne Symfony.
« Symfony is a set of PHP Components, a Web Application framework, a Philosophy, and a Community — all working together in harmony. »
Ďalšími bodmi workshopu bolo oboznámenie sa s fungovaním samotného Symfony, konkrétne ako implementuje architektúru MVC, ako pristupuje k rôznym modulom, ako si vytvoriť v ňom vlastnú stránku a ďalšie podstránky a ako vypísať nejaký obsah na obrazovku. Tieto veci sú síce pekne spracované v Symfony dokumentácii ale Matej ich svojou už viacročnou praxou a pozitívnym prístupom dokáže jednoducho vysvetliť aj začiatočníkom. Navyše sa s radosťou podelil aj o svoje "know-how", rôznymi trikmi a tipmi ako si uľahčiť prácu, ako si vytvoriť rôzne skratky a makrá v nástroji PHPStorm a v neposlednej rade, ako správne pomenovanie súborov vedie k ľahšej orientácii vo vašej aplikácii.
"PHPStorm od firmy JETBrains patrí k sade vývojových prostredí postavených na rovnakom jadre. Veľkou výhodou je ak si zvyknete na jeden dokážete pracovať aj v ostatných ako InteliJ Idea, Android Studio ..."
A tu už je zopár Matejových trikov, ktoré mu rozhodne uľahčujú prácu:
Ak si ako programátor všimnete, že často opakujete nejakú časť kódu, je vhodné zamyslieť sa, či by sa nedala vytvoriť nejaká skratka, ktorá by tú časť kódu za vás napísala. V PHPstorme taká možnosť existuje a nazýva sa Live templates. Nájdete ju v nastaveniach. Nájdete tam mnoho už predom vytvorených skratiek, ktoré vám uľahčia prácu bez toho, aby ste museli urobiť niečo navyše. No niečo urobiť musíte a to je naučiť sa ich naspamäť (of course! :D) Jedna z Matejových najpoužívanejších skratiek je qq. Veľmi popisný názov to síce nie je ale za to je ľahko použiteľný. Kedykoľvek v html kóde napíšete qq a tabulátor, tak sa objaví volanie echo. Na obrázku "Symfony workshop tip 1" nájdete kde a ako si vlastnú skratku vytvoriť.
Symfony workshop tip 1
Ďalším užitočným trikom je vytvoriť si vlastný typ súboru. V Symfony sa pracuje so šablónami s názvom twig (súbory s koncovkou html.twig). Tie budete veľmi často vytvárať, tak prečo si prácu neuľahčiť? Vďaka nim dokážeme dokonca vytvoriť aj implicitný kód, ktorý sa po vytvorení súboru automaticky doplní. Celý postup nájdete na obrázku "Symfony workshop tip 2".
Symfony workshop tip 2
Práca v novom frameworku môže byť zo začiatku náročná, všetko je pomerne nové a človek nevie kde čo hľadať. Nainštalovanie Symfony pluginu do PHPstormu vám prácu značne uľahčí. Medzi klady patrí preklikávanie sa klikom myšky medzi viewami a controllermi, našepkávanie symfony modulov a služieb atď. Postup nájdete na obrázkoch "Symfony workshop tip 3 a tip 4", najprv si plugin treba nainštalovať a po inštalácii ho treba v záložke Language & Frameworks aktivovať. Plugin je globálny pre všetky vaše projekty ale aktivovať ho musíte manuálne pre každý jeden, kde ho chcete používať.
Symfony workshop tip 3
Symfony workshop tip 4
Záver workshopu patril niekoľkým ukážkam kódu z väčšieho projektu, na ktorom Matej pracoval, aby účastníci videli ako približne vyzerá jeden z azet projektov „pod pokličkou“. V ukážke predviedol príklady routovania, ako navrhnúť controller aby nemal triliardu riadkov, ako využiť rôzne helpre v šablónach, aký je rozdiel medzi includom a makrom a v čom sú dobré a mnoho ďalšieho.
Už teraz sa tešíme na ďalší z jeho workshopov, kde rozdáva nielen vedomosti ale aj úsmevy spôsobom, akým prednáša a komunikuje s účastníkmi :)