Nette a FrankenPHP (worker)

DefenestrationPraha
Člen | 127
+
0
-

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…

https://github.com/…w/worker.php

Infanticide0
Člen | 107
+
+1
-

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.

Felix
Nette Core | 1245
+
+1
-

Doporucuju nepouzivat klasicke sessions, ale treba CookieStorage jak ted podporuje Nette.

DefenestrationPraha
Člen | 127
+
0
-

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
+
0
-

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.