Alexander Stecher
8f4412cbbf
perf: move sandboxed environment to the C side ( #2058 )
...
This PR uses `zend_array_dup` to simplify and optimize the environment sandboxing
logic. It also guarantees no environment leakage on FrankenPHP restarts.
2026-02-26 22:34:54 +01:00
Rob Landers
755db86116
metrics: only report workers ready when actually ready ( #2210 )
...
In #2205 it appears that workers could be reported in metrics as "ready"
before they are actually ready. This changes the reporting so that
workers are only reported ready once they have completed booting.
Signed-off-by: Robert Landers <landers.robert@gmail.com >
2026-02-21 17:34:35 +01:00
Alexander Stecher
98573ed7c0
refactor: extract the state module and make the backoff error instead of panic
...
This PR:
- moves state.go to its own module
- moves the phpheaders test the phpheaders module
- simplifies backoff.go
- makes the backoff error instead of panic (so it can be tested)
- removes some unused C structs
2025-12-02 23:10:12 +01:00
Kévin Dunglas
6c764ad9c5
fix: correctly set the Mercure hub for the main worker request
2025-11-24 11:21:45 +01:00
Kévin Dunglas
8341cc98c6
refactor: rely on context.Context for log/slog and others ( #1969 )
...
* refactor: rely on context.Context for log/slog and others
* optimize
* refactor
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* fix watcher-skip
* better globals handling
* fix
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-11-17 16:32:23 +01:00
Alexander Stecher
1270784cd3
suggestion: external worker api ( #1928 )
...
* Cleaner request apis.
2025-10-29 11:36:33 +01:00
Kévin Dunglas
9b8d215727
refactor: improve Worker public API and docs
2025-10-29 11:36:33 +01:00
Kévin Dunglas
f7756717b5
feat: allow creating strongly typed slices and maps from PHP values with type utilities ( #1933 )
...
* feat: use generics in type functions for better type support
* various improvements
* better docs
* update docs
2025-10-21 11:20:54 +02:00
Kévin Dunglas
e917ab7974
fix: callback parameters handling in worker extensions
2025-10-09 15:42:29 +02:00
Kévin Dunglas
c42d287138
refactor: extension worker ( #1910 )
...
* refactor: extension worker
* feat: optional HTTP request
* allow passing unsafe.Pointer to the extension callback
* lint
* simplify
2025-10-09 14:10:09 +02:00
Rob Landers
52df300f86
feat: custom workers initial support ( #1795 )
...
* create a simple thread framework
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* add tests
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* fix comment
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* remove mention of an old function that no longer exists
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* simplify providing a request
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* satisfy linter
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* add error handling and handle shutdowns
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* add tests
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* pipes are tied to workers, not threads
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* fix test
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* add a way to detect when a request is completed
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* we never shutdown workers or remove them, so we do not need this
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* add more comments
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* Simplify modular threads (#1874 )
* Simplify
* remove unused variable
* log thread index
* feat: allow passing parameters to the PHP callback and accessing its return value (#1881 )
* fix formatting
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* fix test compilation
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* fix segfaults
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* Update frankenphp.c
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
---------
Signed-off-by: Robert Landers <landers.robert@gmail.com >
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2025-09-18 09:21:49 +02:00
Alexander Stecher
c10e85b905
refactor: cleanup context ( #1816 )
...
* Removes NewRequestWithContext.
* Moves cgi logic to cgi.go
* Calls 'update_request_info' from the C side.
* Calls 'update_request_info' from the C side.
* clang-format
* Removes unnecessary export.
* Adds TODO.
* Adds TODO.
* Removes 'is_worker_thread'
* Shortens return statement.
* Removes the context refactor.
* adjusts comment.
* Skips parsing cgi path variables on explicitly assigned worker.
* suggesions by @dunglas.
* Re-introduces 'is_worker_thread'.
* More formatting.
2025-08-25 16:18:20 +02:00
Alexandre Daubois
96400a85d0
feat(worker): make maximum consecutive failures configurable ( #1692 )
2025-06-30 09:38:18 +02:00
Kévin Dunglas
bf5c98410b
chore: log thread ( #1589 )
2025-05-20 10:10:46 +02:00
Kévin Dunglas
cf7541fde6
chore: add more logs for the worker
2025-05-19 22:43:54 +02:00
Indra Gunawan
a6e1d3554d
fix negative frankenphp_ready_workers metrics ( #1491 )
2025-05-01 02:05:23 +02:00
Kévin Dunglas
8583afd83e
chore: add context to logs to make the linter happy ( #1533 )
2025-04-29 01:08:15 +02:00
Indra Gunawan
1ec37f6cc9
feat: replace zap with slog ( #1527 )
2025-04-26 11:04:46 +02:00
Indra Gunawan
87315a19ae
feat: introduces worker name option, use label on worker metrics instead ( #1376 )
...
* add worker name option and use it in logs and metrics, update tests
* fix missing reference for collector
* update tests
* update docs
* fix conflict
* add missing allowedDirectives
* update tests
2025-03-22 12:32:59 +01:00
Alexander Stecher
8d9ce15849
fix: log worker failures ( #1437 )
...
* Small fixes on error.
* Adds comments.
---------
Co-authored-by: Alliballibaba <alliballibaba@gmail.com >
2025-03-10 22:49:58 +01:00
Alexander Stecher
f50248a7d2
refactor: removes context on the C side ( #1404 )
2025-03-10 08:44:03 +01:00
Alexander Stecher
c57f741d83
fix: concurrent env access ( #1409 )
2025-03-01 14:45:04 +01:00
Alexander Stecher
db3e1a047c
fix: race condition revealed by tests ( #1403 )
...
* Resolves a race condition
* Removes unused code.
* trigger build
* Removes accidental files.
---------
Co-authored-by: Alliballibaba <alliballibaba@gmail.com >
2025-02-21 19:09:08 +01:00
Alliballibaba2
072151dfee
feat: Adds automatic thread scaling at runtime and php_ini configuration in Caddyfile ( #1266 )
...
Adds option to scale threads at runtime
Adds php_ini configuration in Caddyfile
2025-02-19 20:39:33 +01:00