#posobota, s02e01 – pandemická – online stream 28. 3. 2020
- chemix
- Nette Core | 1310
posobota 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á.
- Kdy? Sobota 28. 3. 2020,
- Kde? ONLINE STREAM NA YOUTUBE
- Oficiální hash tag: #posobota, twitter account: @posobota
- Událost na Facebooku: https://www.facebook.com/…74339382860/
Program
15:00 🎤 Přednášky
- Jakub Englický – Komplexní vývojářský stack pro Nette aplikaci v Dockeru (PHP, MariaDB, Redis, Elasticsearch)
- Jan Kuchař – Event Sourcing 101 / Proč event sourcing? Co to je? Kdy se to hodí? A jak se v tom neuvařit?
- Matouš Němec – Latte a typy I., praktický průvodce jak na to.
- David Grudl – Latte a typy a tipy II.
Záznamy z posoboty najdete na YouTube 📺
posobotu nám pomáhají tvořit partneři děkujeme
Golden partners
IDE partner
- chemix
- Nette Core | 1310
časový harmonogram
15:00 – zahájení vysílání
15:10 – Jakub Englický – Komplexní vývojářský stack pro Nette
aplikaci v Dockeru (PHP, MariaDB, Redis, Elasticsearch)
16:00 – 16:10 – otázky
16:15 – 17:00 — Jan Kuchař – Event Sourcing 101 / Proč event
sourcing? Co to je? Kdy se to hodí? A jak se v tom neuvařit?
17:00 – 17:10 — otázky
17:15 — 17:45 — Matouš Němec – Latte a typy I., praktický
průvodce jak na to.
17:45 – 17:55 — otázky
18:00 – 18:30 – David Grudl – Latte a typy a tipy II.
18:30 – 18:40 – otázky
18:40–19:00 – panelová diskuse – otázky z publikace + poznámky z publika
19:00 – 19:05 – rozloučení
- Hologos
- Člen | 19
- Proč je třída DefaultTemplate final? Takhle si budu muset generovat všechny std. property u každé *Template, a pokud se přidá další std. property, tak to bude celkem otročina to přidat do všech *Template tříd.
- Ohledně té featury {formPrint}, v tom výsledném kódu chybí vypsání chyb z $form->addError(). V jednom formuláři mi to chybělo a uživatelé pak netušili, co se děje, že se jim nedaří vytvořit objednávka.
Editoval Hologos (28. 3. 2020 23:20)
- David Grudl
- Nette Core | 8227
Nemusíš si generovat všechny standardní property u každé template,
generuj jen ty, které opravdu používáš. Sám používám občas
$basePath
, $user
, $flashes
a vyjímečně
$presenter
. A ten má navíc v každé šabloně jiný typ.
ad formPrint: dobrý postřeh, doplním
- Hologos
- Člen | 19
F.Vesely napsal(a):
@Hologos Vsak pouzij svuj vlastni BaseTemplate, jak ukazoval David ve videu.
Nakonec mi to taky došlo, ale už jsem to tu nechal :-)
Správnější řešení ale nejspíše bude to, co psal David. Tedy posílat
tam opravdu jen to, co má pro danou šablonu smysl.
Díky za nasměrování.
Editoval Hologos (29. 3. 2020 12:58)
- kuba.englicky
- Člen | 3
Ahoj,
díky za sledování mé včerejší přednášky. Hodil jsem ukázku kódu,
který jsem včera použival na Github, tak se můžete podívat na kompletní
konfiguraci, a případně si to sami vyzkoušet. https://github.com/…a-pandemicka
Co se týká hostingu pro provoz docker appek. Já jsem používal CloudVPS u Forpsi a nyní používám DigitalOcean.
- Petr Parolek
- Člen | 455
Ahoj, zkouším rozjet stack z githubu, ale skončím s chybou:
Pulling console (posobota_web:)...
pull access denied for posobota_web, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
Jak mám prosím vytvořit image posobota_web?
Editoval ppar (1. 4. 2020 19:03)
- jiri.pudil
- Nette Blogger | 1032
chemix napsal(a):
Dotaz @HonzaKuchař existuje neco jako „Doctrine“ nebo obecne „ORM“ tak nejakej PHP system na vykopnuti a usnadneni techto event style ukladani entit? Nebo to mas nejak magicky napojene na Doctrine?
Používáme řešení zčásti vlastní, zčásti postavené na balíčcích Prooph – zejména prooph/pdo-event-store, což je právě ta část persistující události, na kterou se ptáš. Vedle Prooph existuje mj. ještě Broadway, ale to jsem jen zahlédl, nemám s tím nemám zkušenosti.
- Petr Parolek
- Člen | 455
@FVesely díky moc, s dockerem si občas hraju léta. Pořád pro mě je docker velká magie.
- roman.campula
- Člen | 60
Ahoj,
David ukazoval v přednášce Latte a typy a tipy (https://youtu.be/WjQEKw186zc?…) jak jdou vytvořit šablony
k různým view a tyto šablony dědí od obecnější BaseTemplate. Pěkná
věc, to se mi líbí. Podařilo se mi to zprovoznit, ale narazil jsem na
problém s vlastními funkcemi vyžadujícími další závislosti. Umím si
vytvořit vlastní funkci assetGlobal
, která je dostupná ze
všech view. Pokud však potřebuji v dané funkci nějakou závislost (zde
třídu obsahující obecné parametry), tak to už nevím, jak ji tam předat.
Přes konstruktor mi to nejde.
Můžeme mi prosím poradit, jak si mám do BaseTemplate předat nějaké závislosti, které budu následně vyžívat pro tvorbu obecných funkcí a filtrů?
Díky
TestPresenter.php
class TestPresenter extends Nette\Application\UI\Presenter {
function __construct() {
parent::__construct();
}
function renderDefault() {
$template = $this->createTemplate(TestDefaultTemplate::class);
$this->sendTemplate($template);
}
}
class TestDefaultTemplate extends WebModule\Templates\BaseTemplate {
use Nette\SmartObject;
}
BaseTemplate.php
class BaseTemplate extends Nette\Bridges\ApplicationLatte\Template {
use Nette\SmartObject;
public AppModule\Model\Parameters $parameters;
function __construct(Latte\Engine $latte) {
parent::__construct($latte);
$this->addFunction("assetGlobal", function ($file) {
$fileResult = $file . "?domain=" . $this->parameters->domain; // zde potřebuji získat závislost na parameters
return $fileResult;
});
}
}
default.latte
{assetGlobal('/system/ajax/nette.ajax.min.js')}
Editoval roman.campula (26. 5. 2020 20:03)
- Honza Kuchař
- Člen | 1662
chemix napsal(a):
Dotaz @HonzaKuchař existuje neco jako „Doctrine“ nebo obecne „ORM“ tak nejakej PHP system na vykopnuti a usnadneni techto event style ukladani entit? Nebo to mas nejak magicky napojene na Doctrine?
Promiň, přehlédl jsem e-mail. Na ukládání eventů používáme obyčejnou tabulku s json-encoded eventy. Odkazy na inspiraci můžeš nalézt zde: https://gitlab.grifart.cz/…er/README.md Zároveň plánuji časem zveřejnit (když mi napíšete, dáte tím vědět, že je o to zájem) systém na serializaci a generování kódu, který se při aplikace této architektury velmi hodí.
Případně velmi minimalisticky pojaté ukládání v ES aplikaci najdeš v této přednášce z Nette Campu. https://www.facebook.com/…52243854364/
Editoval Honza Kuchař (26. 8. 2020 12:32)