Nette a FrankenPHP (worker)
- DefenestrationPraha
- Člen | 127
Mám takovou otázku … zkoušeli jste někdy někdo provozovat nějakou aplikaci Nette v dockeru FrankenPHP v režimu worker?
Ono je to velmi rychlé, výrazně rychlejší, než pod Apachem, ale narazil jsem na problémy s tím, že se různě matou sessions.
Opřel jsem se o tento projekt:
https://github.com/…-frankenphp/
ale myslím si, že v tom handleru se toho bude muset resetovat více než pouze http.request…
- Infanticide0
- Člen | 107
https://www.youtube.com/watch?…
Je to sice pro RoadRunner, ale ten myslim taky pracuje ve worker režimu, v přednášce si museli udělat vlastní Application, protože ta aktuální nepodporuje vyřizování requestů v cyklu, možná to pomůže.
- DefenestrationPraha
- Člen | 127
Tak, já jsem to mezitím rozchodil celkem jednoduše, naklonuju si pokaždé existující kontejner a vyhážu z něj pár věcí:
$handler = static function () use ($configurator, $container) {
$container = clone $container;
$container->removeService('security.user');
$container->removeService('latte.templateFactory');
$container->removeService('security.userStorage');
$container->removeService('session.session');
$container->removeService('http.response');
$container->removeService('http.request');
$container->addService('http.request', $container->getByType(RequestFactory::class)->fromGlobals());
Co mi tedy ale nechce chodit, je Tracy bar, i když je povolený (logování do souboru funguje). Zkusím to dnes nějak oddebugovat, jestli se mi podaří rozchodit debugging do Dockeru, a napíšu, co jsem zjistil.
Problém se projevuje tak, že ten <script> s Tracy tam vůbec není.
- DefenestrationPraha
- Člen | 127
Problém s Tracy je v tom, že ona se realizuje pomocí shutdownHandleru, jenže ve Worker formátu nedochází asi k ukončení skriptu. Tím pádem se nevykreslí.
Zatím se mi to nepodařilo vyřešit. Založím k tomu nová témata.