Kévin Dunglas
a16076e082
perf: prevent useless logger allocs
2024-08-27 11:03:01 +02:00
Rob Landers
d532772355
fix: reset sapi response code ( #964 )
...
* fix: reset sapi response code
It turns out that the sapi response code is NOT reset between requests by the zend engine. This resets the code for cgi-based requests.
fixes : #960
* update response header test
* fix assertion
* appears to affect workers too
2024-08-11 22:34:50 +02:00
Kévin Dunglas
4537f27f67
fix: prevent crash when worker terminates after a file upload
2024-06-08 13:36:32 +02:00
Rob Landers
e127cf5e1c
update test ( #688 )
...
This makes the file size 6mb-ish, more than the 2mb batching that PHP does. I verified this fails on 0e163a0 (main prior to #686 ).
2024-03-24 16:28:15 +01:00
Kévin Dunglas
07a74e5c5a
perf: reduce allocs when creating $_SERVER ( #540 )
...
* perf: reduce allocs when creating $_SERVER
* improve
* refactor: prevent C allocs when populating $_SERVER
* cs
* remove append()
* simplify
* wip
* cleanup
* add cache
* cleanup otter init
* some fixes
* cleanup
* test with a leak
* remove const?
* add const
* wip
* wip
* allocate dynamic variables in Go memory
* cleanup
* typo
* bump otter
* chore: bump deps
2024-03-12 18:31:30 +01:00
Kévin Dunglas
d1a6e38438
chore: reset stats in benchmarks
2024-02-12 14:07:11 +01:00
Kévin Dunglas
6dee113a01
perf: add $_SERVER creation benchmark
2024-02-01 11:40:36 +01:00
Kévin Dunglas
fe7e9e7c79
fix: crash when using apache_request_headers() ( #536 )
...
* fix: potential crash when using apache_request_headers()
* refactor: better apache_request_headers
2024-02-01 10:00:11 +01:00
Kévin Dunglas
5a8e5f9518
feat: add apache_response_headers() function ( #530 )
2024-01-31 12:34:30 +01:00
Kévin Dunglas
49baf02035
feat: add go_apache_request_headers()
2024-01-23 23:14:24 +01:00
Kévin Dunglas
aa1d968dcf
refactor: faster $_SERVER variables creation
2023-11-16 14:40:52 +01:00
Kévin Dunglas
12791636ee
chore: add an echo server benchmark
2023-11-10 17:10:16 +01:00
Kévin Dunglas
c615fe0087
feat: add experimental CLI support ( #239 )
...
* feat: add CLI support
* updated
* debug
* fix tests
* Caddy php-cli command
* use thread
* $_SERVER and input streams support
* Update frankenphp.c
Co-authored-by: Francis Lavoie <lavofr@gmail.com >
---------
Co-authored-by: Francis Lavoie <lavofr@gmail.com >
2023-10-09 14:38:15 +02:00
Kévin Dunglas
69416cc0d6
test: prove that Fibers work if not calling Go
2023-09-28 19:04:57 +02:00
Kévin Dunglas
48908f599d
fix: ensure that SERVER_PORT is always defined
2023-09-17 13:20:16 +02:00
Kévin Dunglas
fb63099a88
feat: allow passing env vars to workers ( #210 )
2023-09-15 12:59:43 +02:00
Kévin Dunglas
ab0783519e
perf: reduce the number of calls to cgo to set the headers
2023-08-18 19:20:32 +02:00
Kévin Dunglas
234873a35a
test: add a test for large requests
2023-08-16 11:12:29 +02:00
Kévin Dunglas
df976c1708
fix: race condition on shutdown
2023-08-06 17:37:52 +02:00
Kévin Dunglas
e0cf262224
test: fix and refactor some flaky tests ( #165 )
...
* test: fix and refactor some flaky tests
* better fix for flush.php
* simpler DHA config
2023-07-10 18:46:04 +02:00
Kévin Dunglas
35f2a4a852
ci: compile and run tests using setup-php ( #157 )
...
* ci: run tests without container
* try to use the embed SAPI
* fix build
* debug
* ctd
* cleanup
* use dev ini file
* disable xdebug
* errors
* fix
* phpinfo
* disable output_buffering
* enable debug symbols
* debug on linux
* debug
* fix config
* sudo
* better extension support
* enable opcache
* cleanup
* cleanup
2023-07-04 14:45:31 +02:00
Kévin Dunglas
11b1904a3d
ci: fix skip flaky tests ( #156 )
...
* ci: fix skip flaky test
* flaky test
2023-06-26 22:20:09 +02:00
Kévin Dunglas
75cd310292
feat: add support for PHP timeouts on Linux ( #128 )
2023-03-05 15:47:20 +01:00
Kévin Dunglas
878a30d92f
fix: ensure there is always a free thread for non-worker scripts ( #105 )
2022-11-14 22:45:51 +01:00
Kévin Dunglas
6a6dda5ed9
feat: expose PHP version ( #102 )
2022-11-12 14:48:10 +01:00
Jockos
f0b2eb7445
feat: improve of performance of PHP variables registration ( #94 )
...
* feat: enhance php register variables
* apply comments
* fix errors
* improve benchmark
* remove debug statement
* use defer
* don't use defer in a loop
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2022-11-10 14:03:50 +01:00
Rob Landers
3abda4fbb6
feat: handle aborted connection ( #95 )
...
* Handle aborted connection
* Handle when writing as well
* return bytes written
* optimize return
* remove goroutine
* fix style
* Add tests
* add missing newline
2022-11-09 15:09:45 +01:00
Kévin Dunglas
8e136d0d25
feat: implement flush() ( #90 )
...
* feat: implement flush()
* add tests
2022-11-09 00:56:00 +01:00
Kévin Dunglas
0a30dd1cb9
tests: improve TestFinishRequest ( #97 )
2022-11-09 00:53:34 +01:00
Rob Landers
9ef3bd7c47
feat: add fastcgi_finish_request() support ( #69 )
...
* Add function to ext
* buggy af, but kinda working
* Get worker and regular mode working
* fix formatting
* add eol
* add eol
* 🤦
* properly generate file
* use sync.Once
2022-11-03 08:36:47 +01:00
Dylan Blokhuis
18940108d1
feat: add support for $_SERVER['PHP_SELF'] ( #71 )
...
* PHP_SELF
* remove accidental formatting
* test: add test for PHP_SELF
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2022-10-28 17:25:02 +02:00
Kévin Dunglas
b719e1cbea
docs: improve docs of the Go module ( #25 )
2022-10-15 11:54:42 +02:00
Kévin Dunglas
5af6b10d1f
feat: add support for 103 Early Hints ( #12 )
2022-10-11 17:40:12 +02:00
Kévin Dunglas
3712d0d69b
test: add tests for exception handling ( #11 )
2022-10-11 10:54:30 +02:00
Kévin Dunglas
4c0dd41327
feat: improve PHP logger
2022-10-08 13:05:18 +02:00
Kévin Dunglas
0b8e322375
fix: preserve autoloading in worker mode
2022-10-06 15:25:58 +02:00
Kévin Dunglas
4a87ad3609
chore: add tests regarding persistent objects
2022-10-05 15:44:02 +02:00
Kévin Dunglas
d61c96a4c3
feat: use Zap for logging
2022-10-04 17:42:45 +02:00
Kévin Dunglas
796476d537
feat: use threads instead of GoRoutines ( #6 )
...
* feat: use threads instead of GoRoutines
* many improvements
* fix some bugs
2022-10-04 14:41:19 +02:00
Kévin Dunglas
84273ec395
fix: fix thread safety issues ( #5 )
...
* fix: fix thread safety issues
* some improvements
* wip
* tiny improvements
2022-06-03 17:18:07 +02:00
Kévin Dunglas
a3ba57f021
test: ensure memory safety when handling parallel requests ( #3 )
2022-05-23 11:57:30 +02:00
Kévin Dunglas
2b3475ed9d
docs: add examples
2022-05-20 09:42:30 +02:00
Kévin Dunglas
8c87075db8
docs: add an exemple
2022-05-19 17:42:12 +02:00
Kévin Dunglas
09de805aaa
fix: memory leaks and refactor worker code ( #2 )
2022-05-18 21:19:07 +02:00
Kévin Dunglas
7d81fa51fe
feat: add a woker mode ( #1 )
...
* refactor: better memory management
* wip
* tmp
* introduce a go-like api
* upgraded to PHP 8.2
* Fix thread safety issues
* fix tests
* wip
* refactor worker
* worker prototype
* fix populate env
* session
* improve tests
* fix Caddy tests
* refactor
2022-05-18 11:52:24 +02:00
Kévin Dunglas
f037ba937a
feat: better public API
2021-11-01 15:38:12 +01:00
Kévin Dunglas
290e9e1114
feat: Caddy module
2021-11-01 00:18:30 +01:00
Kévin Dunglas
a2607e6be7
initial commit
2021-09-24 18:52:20 +02:00