Alexandre Daubois
96400a85d0
feat(worker): make maximum consecutive failures configurable ( #1692 )
2025-06-30 09:38:18 +02:00
Alexandre Daubois
5542044376
feat: allow omitting value with the --watch flag of php-server ( #1595 )
2025-06-02 15:54:01 +02:00
Kévin Dunglas
ffa52f7c8d
chore: run prettier
2025-04-23 01:02:44 +02: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
Kévin Dunglas
334139ca2b
feat: improve install script ( #1097 )
2024-10-15 18:06:21 +02:00
Alexander Stecher
8d9b6e755b
feat: restart workers when on source changes ( #1013 )
...
* Adds filesystem watcher with tests.
* Refactoring.
* Formatting.
* Formatting.
* Switches to absolute path in tests.
* Fixes race condition from merge conflict.
* Fixes race condition.
* Fixes tests.
* Fixes markdown lint errors.
* Switches back to absolute paths.
* Reverts back to relative file paths.
* Fixes golangci-lint issues.
* Uses github.com/dunglas/go-fswatch instead.
* Stops watcher before stopping workers.
* Updates docs.
* Avoids segfault in tests.
* Fixes watcher segmentation violations on shutdown.
* Adjusts watcher latencies and tests.
* Adds fswatch to dockerfiles
* Fixes fswatch in alpine.
* Fixes segfault (this time for real).
* Allows queueing new reload if file changes while workers are reloading.
* Makes tests more consistent.
* Prevents the watcher from getting stuck if there is an error in the worker file itself.
* Reverts changing the image.
* Puts fswatch version into docker-bake.hcl.
* Asserts instead of panicking.
* Adds notice
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update dev.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update dev-alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update dev-alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update dev.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update docs/config.md
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Runs fswatch version.
* Removes .json.
* Replaces ms with s.
* Resets the channel after closing it.
* Update watcher_options.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update watcher_test.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Asserts no error instead.
* Fixes a race condition where events are fired after frankenphp has stopped.
* Updates docs.
* Update watcher_options_test.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Allows queuing events while watchers are reloading.
* go fmt
* Refactors stopping and draining logic.
* Allows extended watcher configuration with dirs, recursion, symlinks, case-sensitivity, latency, monitor types and regex.
* Updates docs.
* Adds TODOS.
* go fmt.
* Fixes linting errors.
* Also allows wildcards in the longform and adjusts docs.
* Adds debug log.
* Fixes the watcher short form.
* Refactors sessions and options into a struct.
* Fixes an overflow in the 'workersReadyWG' on unexpected terminations.
* Properly logs errors coming from session.Start().
* go fmt.
* Adds --nocache.
* Fixes lint issue.
* Refactors and resolves race condition on worker reload.
* Implements debouncing with a timer as suggested by @withinboredom.
* Starts watcher even if no workers are defined.
* Updates docs with file limit warning.
* Adds watch config unit tests.
* Adjusts debounce timings.
* go fmt.
* Adds fswatch to static builder (test).
* Adds a short grace period between stopping and destroying the watcher sessions.
* Adds caddy test.
* Adjusts sleep time.
* Swap to edant/watcher.
* Fixes watch options and tests.
* go fmt.
* Adds TODO.
* Installs edant/watcher in the bookworm image.
* Fixes linting.
* Refactors the watcher into its own module.
* Adjusts naming.
* ADocker image adjustments and refactoring.
* Testing installation methods.
* Installs via gcc instead.
* Fixes pointer formats.
* Fixes lint issues.
* Fixes arm alpine and updates docs.
* Clang format.
* Fixes dirs.
* Adds watcher version arg.
* Uses static lib version.
* Adds watcher to tests and sanitizers.
* Uses sudo for copying the shared lib.
* Removes unnused func.
* Refactoring.
* Update .github/workflows/sanitizers.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Adds fpic.
* Fixes linting.
* Skips tests in msan.
* Resets op_cache in every worker thread after termination
* Review fixes part 1.
* Test: installing libstc++ instead of gcc.
* Test: using msan ignorelist.
* Test: using msan ignorelist.
* Test: using msan ignorelist.
* Allows '/**/' for global recursion and '**/' for relative recursion.
* Reverts using the ignorelist.
* Calls opcache directly.
* Adds --watch to php-server command
* Properly free CStrings.
* Sorts alphabetically and uses curl instead of git.
* Labeling and formatting.
* Update .github/workflows/sanitizers.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update .github/workflows/sanitizers.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update .github/workflows/tests.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update .github/workflows/tests.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update caddy/caddy.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update docs/config.md
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update frankenphp_with_watcher_test.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update watcher/watcher.h
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update frankenphp.c
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update watcher/watcher.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update docs/config.md
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update frankenphp_with_watcher_test.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update testdata/files/.gitignore
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update watcher/watcher-c.h
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update watcher/watcher.c
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Fixes test and Dockerfile.
* Fixes Dockerfiles.
* Resets go versions.
* Replaces unsafe.pointer with uintptr_t
* Prevents worker channels from being destroyed on reload.
* Minimizes the public api by only passing a []string.
* Adds support for directory patterns and multiple '**' globs.
* Adjusts label.
* go fmt.
* go mod tidy.
* Fixes merge conflict.
* Refactoring and formatting.
* Cleans up unused vars and functions.
* Allows dirs with a dot.
* Makes test nicer.
* Add dir tests.
* Moves the watch directive inside the worker directive.
* Adds debug log on special events.
* Removes line about symlinks.
* Hints at multiple possible --watch flags.
* Adds ./**/*.php as default watch configuration.
* Changes error to a warning.
* Changes the default to './**/*.{php,yaml,yml,twig,env}' and supports the {bracket} pattern.
* Fixes linting.
* Fixes merge conflict and adjust values.
* Adjusts values.
---------
Co-authored-by: a.stecher <a.stecher@sportradar.com >
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2024-10-07 13:17:24 +02:00
Rob Landers
aa585f7da0
handle worker failures gracefully ( #1038 )
...
* handle failures gracefully
* fix super-subtle race condition
* address feedback: panic instead of fatal log and make vars into consts
* pass the frankenphp context to worker-ready function
* reset backoff and failures on normal restart
* update docs
* add test and fix race condition
* fail sometimes but do not be pathological about it
* Use title case
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* fix code style in php
* define lifecycle metrics
* ensure we update unregister the metrics and fix tests
* update caddy tests and fix typo
* update docs
* no need for this
---------
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2024-10-03 21:53:12 +02:00
Alexander Makarov
93859e3149
docs: fix assorted typos ( #942 )
2024-07-27 00:07:52 +02:00
Tim Düsterhus
c0c56a8cf8
Fix typo in code sample in worker.md
2024-06-11 11:02:06 +02:00
DubbleClick
ce4732aa43
docs: fix worker example ( #856 )
...
* Update worker.md documentation if MAX_REQUESTS is not set
* Update worker.md
2024-06-08 13:06:40 +02:00
Kévin Dunglas
3714fdf3a1
fix: superglobals-realated crash with custom extensions in worker mode ( #796 )
...
* test: failing test reproducing #767
* fix
* Update frankenphp.c
Co-authored-by: Tim Düsterhus <timwolla@googlemail.com >
* Update frankenphp.c
Co-authored-by: Tim Düsterhus <timwolla@googlemail.com >
* review
* ZVAL_COPY
* fix
* add back current $_SERVER behavior
* add docs
* bad fix for the leak
* clean test
* improve tests
* fix test
* fix
* cleanup
* clarify destroy super globals name
* micro-optim: use zval_ptr_dtor_nogc to destroy super globals
* style
* fix
* better name for frankenphp_free_server_context
* more cleanup
* remove useless memset
* more cleanup
* continue refactoring
* fix and update docs
* docs
---------
Co-authored-by: Tim Düsterhus <timwolla@googlemail.com >
2024-06-05 15:24:16 +02:00
Laury S
963b3e0f59
docs: add FR translations and various EN improvements ( #589 )
...
* feat: add fr doc (#1 )
* fix: fr translations
* fix: linter
* docs: various improvements
* fix: md links on readme fr
* fix: remove duplicate images
---------
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2024-02-27 17:21:48 +01:00
Leo Cavalcante
f35e276ee6
docs: fix worker mode Docker example ( #516 )
2024-01-29 14:06:27 +01:00
Kévin Dunglas
b624a13430
docs: improve HTTPS documentation ( #480 )
2024-01-20 11:49:16 +01:00
Mr Alexandre J-S William ELISÉ
f19c153d06
docs: update worker.md to prevent infinite loop ( #455 )
...
* Update worker.md to prevent infinite loop
Quick fix typo `<=` rather than `>=` which prevents infinite loop and get out of the loop when MAX_REQUESTS is reached.
* Update worker.md to fix impossible evaluation
Fix impossible case where if MAX_REQUESTS is not defined the rest of the condition is not evaluated as it is an && operator as mentioned by https://github.com/dunglas/frankenphp/discussions/453#discussioncomment-7981535
* Update worker.md change to for loop and remove handler from the loop
Change to for loop and remove handler from the loop based on the feedback https://github.com/dunglas/frankenphp/pull/455#discussion_r1438918811
2024-01-08 08:17:08 +01:00
Kévin Dunglas
e3361c2b3f
feat(caddy): allow to start workers using the php-server built-in command ( #339 )
2023-12-06 18:18:16 +01:00
Kévin Dunglas
c9bf9940d1
ci: add Super-Linter ( #323 )
2023-12-01 17:26:21 +01:00
Kévin Dunglas
c884d26799
docs: don't stop the worker script even if a connection with a client is aborted
2023-11-22 19:14:51 +01:00
Jacob Dreesen
35d4075c50
Fix typo in the docs
2023-10-31 01:17:41 +01:00
Kévin Dunglas
c1b8c5df5f
docs: improve workers docs ( #281 )
...
* docs: improve workers docs
* improvements
2023-10-30 22:16:09 +01:00
Kévin Dunglas
657dd9580b
docs: garbage collection in worker mode
2023-02-03 19:08:25 +01:00
Yoann Chocteau
0f0476792f
APP_RUNTIME as docker environment variable ( #40 )
...
APP_RUNTIME as docker environment variable
2022-10-19 11:47:42 +02:00
Kévin Dunglas
b8177a007e
docs: add more docs ( #16 )
2022-10-14 12:20:57 +02:00
Kévin Dunglas
acc48830f7
feat: improve Dockerfile and add some docs ( #15 )
2022-10-13 18:05:22 +02:00