[Poslední sobota, 85] Praha – Nette (28. 1. 2017)
- chemix
- Nette Core | 1310
Poslední sobota je pravidelným místem setkání všech fanoušků programování webových aplikací, ať už to jsou odborníci nebo amatéři. Cestujeme po republice kde se dá. Vstup na akci je zdarma, jen prosím potvrďte účast.
- Kdy? Sobota 28. 1. 2017, od 15 hod
- Kde? Praha, Paralelní Polis, Dělnická 475/43
- Oficiální hash tag: #PoSobota, twitter account: @PoSobota
- Prosíme, svou účast potvrďte zde na facebook
Program
10:00 – Workshop
domluveny jsou dva workshopy, junior a senior
- Martin Zlámal – Nette + GraphQL + React.JS
- David Matějka – základy Nette Framework
12:30 – Pálivý oběd
15:00 – Začátek přednášek
- Martin Zlámal – GraphQL API s Nette
- David Grudl – Novinky kolem Nette
- Petr Soukup – Faily při provozu PHP v cloudu
- Jan Tvrdík – SSA optimalizace v PHP 7.1 aneb první krůčky k JIT (short)
- Honza Gula – instante/tracy-login Tracy panel pro testování uživatelů (short)
- Přemek Koch – Moje první nette přednáška (short)
18:55 – Závěrečný blok
- vylosování výherce roční licence PhpStorm-JetBrains
19:00 – Zakončení
Pivo & networking
Martin Zlámal – GraphQL API s Nette
Co je to GraphQL (vlastnoti, výhody, nevýhody), jak jej jednoduše implementovat v Nette Frameworku a jak použít toto API pro komunikaci s React prostředím na frontendu. Přednáška volně doplňuje články na blogu zlml.cz.
PoSobotu nám pomáhají tvořit partneři, děkujeme
- Jan Tvrdík
- Nette guru | 2595
@chemix Jestli je zájem, tak bych si vzal krátkou přednášku na téma, co znamená „Added DFA optimization framework based on e-SSA form.“ a „Added specialized opcode handlers“ v changelogu PHP 7.1
- souki
- Bronze Partner | 22
Kdyby byla díra v programu, tak bych mohl nabídnout „faily při provozu PHP v cloudu“. Pojal bych to jako sbírku prkotin, které vývojáře ani nenapadne řešit při vývoji lokálně/na hostingu, ale vymstí se v cloudu. Race conditions, paralelní běh, latence, …
Je to ale poměrně obecné téma, takže bych to bral spíš jako záložní, když bude v programu díra. Buď jen prosvištění checklistu, na co si dát pozor a nebo delší verze s konkrétnějším vysvětlením. Nebo možná spíš vybrat jen jednu věc? :)
- chemix
- Nette Core | 1310
@andros ahoj, posobota je i pro lidi co s Nette nepracuji. Je dobre mit nejake zaklady Nette Frameworku pro komplikovanejsi prednasky, ale tech neno 100%.
Navic ted jsem se domluvil s @DavidMatějka, ze by pripravil juniorsky workshop, takze pokud s Nette zacinas, urcite si rano privstan.
PS: i kdyby byly prednasky komplikovane, tak za poznani komunity a seznameni se, to urcite stoji :)
- andros
- Člen | 145
@chemix díky za odpověď. Já s Nette teprve začínám. Je silně návykové a postupně se něj dostávám. Dřív jsem se žádným Frameworkem nepracoval, takže chviličku trvalo pochopení celé logiky (Presentery, templates atd). Juniorský workshop je perfektní nápad a už se těším. Myslím, že je to přesně to co potřebuju. I když budu na spoustu věcí koukat jak „tele na vrata“, máš naprostou pravdu, že už jen to seznámení s komunitou za to opravdu stojí :)
- igor.pocta
- Člen | 100
@DavidMatějka Máš nějakou představu co by jsi chtěl na WS probírat? Zda úplné základy nebo … ?
- David Matějka
- Moderator | 6445
@igor.pocta zalezi, co budou ucastnici chtit :) ale kdyz jsem tyhle workshopy delal nekdy dva roky zpatky, tak to bylo opravdu od zacatku (vcetne composeru, vysvetleni struktury app, presenteru atd.)
- mrtnzlml
- Člen | 140
Toto bude nejsložitější návod na workshop vůbec… :D
Pokud chcete na GraphQL workshop přijít a jen poslouchat, tak je to v pořádku a máte hotovo. V opačném případě je potřeba zprovoznit 2 aplikace. Jedna aplikace je napsána v Nette a slouží jako API endpoint. Druhá aplikace je frontend napsaný v Reactu. Začněme postupně v řeči programátora:
Nette Backend
Backend je postavený na PostgreSQL, takže doporučuji. Ale půjde to i na MySQL (ORM FTW!).
git clone git@github.com:adeira/connector.git
cd connector
composer install
cp config/config.local.neon.travis config/config.local.neon
A zde samozřejmě upravíme přístupové údaje k DB (vytvořte si prázdnou). Pro MySQL nějak takto:
doctrine.orm:
connection:
dbname: adeira-connector
user: root
password: root
driver: pdo_mysql
Kdyby něco, nezapomeňte ručně smazat cache (všiml jsem si, že se zde ne úplně spolehlivě invaliduje). Pokračujeme:
bin/console <<< mělo by vrátit výpis Symfony konzole!
bin/console orm:schema-tool:create <<< v databázi budou nově automaticky 3 tabulky
bin/console adeira:user:create username password
Poslední příkaz vytvoří uživatele a vrátí UUID. Tento identifikátor
si někam uložte – budeme s ním později pracovat (dá se případně
najít v databázi). V mém případě je to
3d1add46-ac04-4785-830f-e67f74550f89
. Už jen ověříme, že vše
funguje a je to:
bin/console adeira:graphql:query 3d1add46-ac04-4785-830f-e67f74550f89
Vrátí něco takového:
{
"data": {
"allQueries": {
"queries": [
{
"name": "user"
},
...
]
}
}
}
React Frontend
Vrátíme se do výchozí složky a jedeme znovu (pravděpodobně bude
fungovat i s npm
):
git clone git@github.com:adeira/connector-frontend.git
cd connector-frontend
yarn install
Instalace trvá na normálním stroji 88.50s. Ověříme, že naše prostředí funguje a to tak, že rovnou spustíme vývojový server:
yarn run start
Mělo by se otevřít okno na adrese http://127.0.0.1:1234/. Toto lze změnit v souboru
package.json
v sekci scripts
pod klíčem
start
. S trochou štěstí se zobrazí přihlašovací formulář.
Ke vší smůle se však při pokusu o přihlášení zobrazí hláška
Backend API server is not reachable...
(přihlašovací údaje ke
svému uživateli znáte z první poloviny návodu). Frontend totiž neví kde
je backend. Napravte to prosím v souboru src/index.js
:
const apolloClient = new ApolloClient({
networkInterface: new HTTPFetchNetworkInterface('//connector.adeira.localhost/graphql'), //FIXME
});
Nyní se můžete přihlásit. Pokud vidíte stránku s hlavičkou (modrozelený gradient), tak máte vyhráno. Nezapomeňte si projekty za týden zaktualizovat. Je pravděpodobné, že to ještě budu tunit.
Pokud něco nefunguje, zapněte konzoli v prohlížeči případně logy v Nette aplikaci a dejte mi vědět (tady nebo ideálně na Slacku pépápkařů).
Na workshopu si s tímto prostředím budeme hrát (nic náročného). Workshop je určen pro lidi, kteří s GraphQL/React/API nemají zkušenosti, ale dovedou tento návod projít a splnit.
V průběhu psaní tohoto návodu jsem jej zároveň zkoušel, abych ověřil, že jsem něco nevynechal a nebylo ublíženo žádnému zvířátku… :)
- David Matějka
- Moderator | 6445
@snizemic sry, vim o tom. jen to dam nejak do kupy :) snad dneska se k tomu dostanu
- andros
- Člen | 145
parti napsal(a):
Zdravim chtel bych se zeptat jestli se bude konat tenhle mesic akce posledni sobota?
Dekuji moc za odpoved.
Tady je info:
https://forum.nette.org/…lu-25-2-2017
- HappyFace
- Člen | 162
videa z [Poslední sobota, 85] Praha – Nette (28. 1. 2017):
https://www.youtube.com/playlist?…
- souki
- Bronze Partner | 22
HappyFace napsal(a):
videa z [Poslední sobota, 85] Praha – Nette (28. 1. 2017):
https://www.youtube.com/playlist?…
Ehm… koukám, že jsem svoji 20ti minutovou přednášku brutálně přetáhnul :)))