This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
devdays:t3dd24 [2024/07/29 21:51] – admin | devdays:t3dd24 [2024/08/03 09:49] (current) – admin | ||
---|---|---|---|
Line 3: | Line 3: | ||
====== A Modern PHP App Server ====== | ====== A Modern PHP App Server ====== | ||
- | {{ : | + | {{ : |
+ | |||
+ | ====== The Author ====== | ||
+ | |||
+ | {{: | ||
====== The current state ====== | ====== The current state ====== | ||
Line 30: | Line 34: | ||
</ul> | </ul> | ||
</ | </ | ||
+ | |||
+ | {{ : | ||
====== Features at a glance ====== | ====== Features at a glance ====== | ||
Line 73: | Line 79: | ||
</ul> | </ul> | ||
</ | </ | ||
- | |||
**Configure worker mode:** | **Configure worker mode:** | ||
Line 88: | Line 93: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ====== Early Hints 103 ====== | ||
+ | |||
+ | Allow the browser to download resources or preconnect to a site before | ||
+ | the final response was sent. | ||
+ | |||
+ | < | ||
+ | header(' | ||
+ | headers_send(103); | ||
+ | |||
+ | // Do sluggish stuff 🐌 | ||
+ | |||
+ | </ | ||
+ | |||
+ | ====== Real-Time - MercureHub ====== | ||
+ | |||
+ | {{ : | ||
- | ====== | + | ====== MercureHub |
< | < | ||
Line 198: | Line 222: | ||
... | ... | ||
</ | </ | ||
+ | |||
+ | ====== Prometheus Server ====== | ||
+ | |||
+ | Scrape the metrics provided by FrankenPHP: | ||
+ | |||
+ | |||
+ | prometheus.yml: | ||
+ | <code yml> | ||
+ | scrape_configs: | ||
+ | - job_name: ' | ||
+ | metrics_path: | ||
+ | static_configs: | ||
+ | - targets: [ " | ||
+ | </ | ||
+ | |||
====== Graceful Reload ====== | ====== Graceful Reload ====== | ||
Line 208: | Line 247: | ||
====== Create a self-contained binary ====== | ====== Create a self-contained binary ====== | ||
- | |||
- | !!! TEST !!! | ||
Wrap your PHP application into a self-contained binary. | Wrap your PHP application into a self-contained binary. | ||
Line 227: | Line 264: | ||
Create the self-contained binary using Docker: | Create the self-contained binary using Docker: | ||
< | < | ||
- | docker build -t static-app -f static-build.Dockerfile . | + | docker build -t static-app -f static-build.Dockerfile . --load |
</ | </ | ||
+ | |||
+ | Extract the binary (frankenphp-mac-arm64) | ||
+ | |||
+ | < | ||
+ | docker cp $(docker create --name static-app-tmp static-app):/ | ||
+ | </ | ||
+ | |||
====== Run FrankenPHP ====== | ====== Run FrankenPHP ====== | ||
Line 256: | Line 300: | ||
====== TYPO3 integration ====== | ====== TYPO3 integration ====== | ||
- | |||
- | Describe what we've got so far and what is missing | ||
< | < | ||
<ul> | <ul> | ||
< | < | ||
- | < | ||
< | < | ||
+ | < | ||
</ul> | </ul> | ||
</ | </ | ||
- | ====== | + | **Feature idea:** |
+ | |||
+ | Using GoRoutines to run e.g. the TYPO3 MessageBus (symfony/ | ||
+ | |||
+ | |||
+ | ====== | ||
+ | |||
+ | Join the Chat | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Demo: https:// | ||
+ | |||
+ | Code: https:// | ||
- | https://franky.knallimall.org/ | + | Docs: https://frankenphp.dev/docs/ |