SYMBOL INDEX (1128 symbols across 134 files) FILE: caddy/admin.go type FrankenPHPAdmin (line 12) | type FrankenPHPAdmin struct method CaddyModule (line 16) | func (FrankenPHPAdmin) CaddyModule() caddy.ModuleInfo { method Routes (line 24) | func (admin FrankenPHPAdmin) Routes() []caddy.AdminRoute { method restartWorkers (line 37) | func (admin *FrankenPHPAdmin) restartWorkers(w http.ResponseWriter, r ... method threads (line 49) | func (admin *FrankenPHPAdmin) threads(w http.ResponseWriter, _ *http.R... method success (line 59) | func (admin *FrankenPHPAdmin) success(w http.ResponseWriter, message s... method error (line 65) | func (admin *FrankenPHPAdmin) error(statusCode int, err error) error { FILE: caddy/admin_test.go function TestRestartWorkerViaAdminApi (line 20) | func TestRestartWorkerViaAdminApi(t *testing.T) { function TestShowTheCorrectThreadDebugStatus (line 50) | func TestShowTheCorrectThreadDebugStatus(t *testing.T) { function TestAutoScaleWorkerThreads (line 85) | func TestAutoScaleWorkerThreads(t *testing.T) { function TestAutoScaleRegularThreadsOnAutomaticThreadLimit (line 141) | func TestAutoScaleRegularThreadsOnAutomaticThreadLimit(t *testing.T) { function assertAdminResponse (line 192) | func assertAdminResponse(t *testing.T, tester *caddytest.Tester, method ... function getAdminResponseBody (line 203) | func getAdminResponseBody(t *testing.T, tester *caddytest.Tester, method... function getDebugState (line 215) | func getDebugState(t *testing.T, tester *caddytest.Tester) frankenphp.Fr... function getNumThreads (line 226) | func getNumThreads(t *testing.T, tester *caddytest.Tester) int { function TestAddModuleWorkerViaAdminApi (line 231) | func TestAddModuleWorkerViaAdminApi(t *testing.T) { FILE: caddy/app.go function RegisterWorkers (line 29) | func RegisterWorkers(name, fileName string, num int, wo ...frankenphp.Wo... type FrankenPHPApp (line 47) | type FrankenPHPApp struct method CaddyModule (line 70) | func (f FrankenPHPApp) CaddyModule() caddy.ModuleInfo { method Provision (line 78) | func (f *FrankenPHPApp) Provision(ctx caddy.Context) error { method generateUniqueModuleWorkerName (line 102) | func (f *FrankenPHPApp) generateUniqueModuleWorkerName(filepath string... method addModuleWorkers (line 120) | func (f *FrankenPHPApp) addModuleWorkers(workers ...workerConfig) ([]w... method Start (line 140) | func (f *FrankenPHPApp) Start() error { method Stop (line 178) | func (f *FrankenPHPApp) Stop() error { method UnmarshalCaddyfile (line 204) | func (f *FrankenPHPApp) UnmarshalCaddyfile(d *caddyfile.Dispenser) err... function parseGlobalOption (line 326) | func parseGlobalOption(d *caddyfile.Dispenser, _ any) (any, error) { FILE: caddy/caddy.go constant defaultDocumentRoot (line 14) | defaultDocumentRoot = "public" constant defaultWatchPattern (line 15) | defaultWatchPattern = "./**/*.{env,php,twig,yaml,yml}" function init (line 18) | func init() { function wrongSubDirectiveError (line 33) | func wrongSubDirectiveError(module string, allowedDirectives string, wro... FILE: caddy/caddy_test.go function initServer (line 27) | func initServer(t *testing.T, tester *caddytest.Tester, config string, f... function skipIfSymlinkNotValid (line 47) | func skipIfSymlinkNotValid(t *testing.T, path string) { function escapeMetricLabel (line 61) | func escapeMetricLabel(s string) string { function TestMain (line 65) | func TestMain(m *testing.M) { function TestPHP (line 75) | func TestPHP(t *testing.T) { function TestLargeRequest (line 106) | func TestLargeRequest(t *testing.T) { function TestWorker (line 134) | func TestWorker(t *testing.T) { function TestGlobalAndModuleWorker (line 169) | func TestGlobalAndModuleWorker(t *testing.T) { function TestModuleWorkerInheritsEnv (line 222) | func TestModuleWorkerInheritsEnv(t *testing.T) { function TestNamedModuleWorkers (line 244) | func TestNamedModuleWorkers(t *testing.T) { function TestEnv (line 296) | func TestEnv(t *testing.T) { function TestJsonEnv (line 327) | func TestJsonEnv(t *testing.T) { function TestCustomCaddyVariablesInEnv (line 410) | func TestCustomCaddyVariablesInEnv(t *testing.T) { function TestPHPServerDirective (line 444) | func TestPHPServerDirective(t *testing.T) { function TestPHPServerDirectiveDisableFileServer (line 465) | func TestPHPServerDirectiveDisableFileServer(t *testing.T) { function TestMetrics (line 489) | func TestMetrics(t *testing.T) { function TestWorkerMetrics (line 570) | func TestWorkerMetrics(t *testing.T) { function TestNamedWorkerMetrics (line 671) | func TestNamedWorkerMetrics(t *testing.T) { function TestAutoWorkerConfig (line 766) | func TestAutoWorkerConfig(t *testing.T) { function TestAllDefinedServerVars (line 861) | func TestAllDefinedServerVars(t *testing.T) { function TestPHPIniConfiguration (line 900) | func TestPHPIniConfiguration(t *testing.T) { function TestPHPIniBlockConfiguration (line 928) | func TestPHPIniBlockConfiguration(t *testing.T) { function testSingleIniConfiguration (line 957) | func testSingleIniConfiguration(tester *caddytest.Tester, key string, va... function TestOsEnv (line 968) | func TestOsEnv(t *testing.T) { function TestMaxWaitTime (line 998) | func TestMaxWaitTime(t *testing.T) { function TestMaxWaitTimeWorker (line 1039) | func TestMaxWaitTimeWorker(t *testing.T) { function getStatusCode (line 1110) | func getStatusCode(url string, t *testing.T) int { function TestMultiWorkersMetrics (line 1121) | func TestMultiWorkersMetrics(t *testing.T) { function TestDisabledMetrics (line 1230) | func TestDisabledMetrics(t *testing.T) { function TestWorkerRestart (line 1310) | func TestWorkerRestart(t *testing.T) { function TestWorkerMatchDirective (line 1413) | func TestWorkerMatchDirective(t *testing.T) { function TestWorkerMatchDirectiveWithMultipleWorkers (line 1446) | func TestWorkerMatchDirectiveWithMultipleWorkers(t *testing.T) { function TestWorkerMatchDirectiveWithoutFileServer (line 1487) | func TestWorkerMatchDirectiveWithoutFileServer(t *testing.T) { function TestDd (line 1520) | func TestDd(t *testing.T) { function TestLog (line 1544) | func TestLog(t *testing.T) { function TestSymlinkWorkerPaths (line 1573) | func TestSymlinkWorkerPaths(t *testing.T) { function TestSymlinkResolveRoot (line 1708) | func TestSymlinkResolveRoot(t *testing.T) { function TestSymlinkWorkerBehavior (line 1768) | func TestSymlinkWorkerBehavior(t *testing.T) { FILE: caddy/config_test.go function TestModuleWorkerDuplicateFilenamesFail (line 10) | func TestModuleWorkerDuplicateFilenamesFail(t *testing.T) { function TestModuleWorkersWithDifferentFilenames (line 38) | func TestModuleWorkersWithDifferentFilenames(t *testing.T) { function TestModuleWorkersDifferentNamesSucceed (line 64) | func TestModuleWorkersDifferentNamesSucceed(t *testing.T) { function TestModuleWorkerWithEnvironmentVariables (line 119) | func TestModuleWorkerWithEnvironmentVariables(t *testing.T) { function TestModuleWorkerWithWatchConfiguration (line 153) | func TestModuleWorkerWithWatchConfiguration(t *testing.T) { function TestModuleWorkerWithCustomName (line 189) | func TestModuleWorkerWithCustomName(t *testing.T) { FILE: caddy/extinit.go function init (line 16) | func init() { function cmdInitExtension (line 31) | func cmdInitExtension(_ caddycmd.Flags) (int, error) { FILE: caddy/frankenphp/main.go function main (line 13) | func main() { FILE: caddy/hotreload-skip.go type hotReloadContext (line 11) | type hotReloadContext struct method configureHotReload (line 14) | func (_ *FrankenPHPModule) configureHotReload(_ *FrankenPHPApp) error { method unmarshalHotReload (line 18) | func (_ *FrankenPHPModule) unmarshalHotReload(d *caddyfile.Dispenser) er... FILE: caddy/hotreload.go constant defaultHotReloadPattern (line 17) | defaultHotReloadPattern = "./**/*.{css,env,gif,htm,html,jpg,jpeg,js,mjs,... type hotReloadContext (line 19) | type hotReloadContext struct type hotReloadConfig (line 24) | type hotReloadConfig struct method configureHotReload (line 29) | func (f *FrankenPHPModule) configureHotReload(app *FrankenPHPApp) error { method unmarshalHotReload (line 57) | func (f *FrankenPHPModule) unmarshalHotReload(d *caddyfile.Dispenser) er... function uniqueID (line 91) | func uniqueID(s any) (string, error) { FILE: caddy/hotreload_test.go function TestHotReload (line 19) | func TestHotReload(t *testing.T) { FILE: caddy/mercure-skip.go type mercureContext (line 10) | type mercureContext struct method assignMercureHub (line 13) | func (f *FrankenPHPModule) assignMercureHub(_ caddy.Context) { function createMercureRoute (line 16) | func createMercureRoute() (caddyhttp.Route, error) { FILE: caddy/mercure.go function init (line 17) | func init() { type mercureContext (line 21) | type mercureContext struct method assignMercureHub (line 25) | func (f *FrankenPHPModule) assignMercureHub(ctx caddy.Context) { function createMercureRoute (line 40) | func createMercureRoute() (caddyhttp.Route, error) { FILE: caddy/module.go type FrankenPHPModule (line 34) | type FrankenPHPModule struct method CaddyModule (line 57) | func (FrankenPHPModule) CaddyModule() caddy.ModuleInfo { method Provision (line 65) | func (f *FrankenPHPModule) Provision(ctx caddy.Context) error { method ServeHTTP (line 200) | func (f *FrankenPHPModule) ServeHTTP(w http.ResponseWriter, r *http.Re... method UnmarshalCaddyfile (line 259) | func (f *FrankenPHPModule) UnmarshalCaddyfile(d *caddyfile.Dispenser) ... function needReplacement (line 195) | func needReplacement(s string) bool { function parseCaddyfile (line 335) | func parseCaddyfile(h httpcaddyfile.Helper) (caddyhttp.MiddlewareHandler... function parsePhpServer (line 369) | func parsePhpServer(h httpcaddyfile.Helper) ([]httpcaddyfile.ConfigValue... function prependWorkerRoutes (line 631) | func prependWorkerRoutes(routes caddyhttp.RouteList, h httpcaddyfile.Hel... FILE: caddy/module_test.go function TestRootBehavesTheSameOutsideAndInsidePhpServer (line 12) | func TestRootBehavesTheSameOutsideAndInsidePhpServer(t *testing.T) { FILE: caddy/php-cli.go function init (line 14) | func init() { function cmdPHPCLI (line 28) | func cmdPHPCLI(fs caddycmd.Flags) (int, error) { FILE: caddy/php-server.go function init (line 26) | func init() { function cmdPHPServer (line 62) | func cmdPHPServer(fs caddycmd.Flags) (int, error) { FILE: caddy/watcher_test.go function TestWorkerWithInactiveWatcher (line 12) | func TestWorkerWithInactiveWatcher(t *testing.T) { FILE: caddy/workerconfig.go type workerConfig (line 25) | type workerConfig struct method inheritEnv (line 164) | func (wc *workerConfig) inheritEnv(env map[string]string) { method matchesPath (line 176) | func (wc *workerConfig) matchesPath(r *http.Request, documentRoot stri... function unmarshalWorker (line 51) | func unmarshalWorker(d *caddyfile.Dispenser) (workerConfig, error) { FILE: cgi.go function addKnownVariablesToServer (line 47) | func addKnownVariablesToServer(fc *frankenPHPContext, trackVarsArray *C.... function addHeadersToServer (line 162) | func addHeadersToServer(ctx context.Context, request *http.Request, trac... function addPreparedEnvToServer (line 178) | func addPreparedEnvToServer(fc *frankenPHPContext, trackVarsArray *C.zva... function go_register_server_variables (line 186) | func go_register_server_variables(threadIndex C.uintptr_t, trackVarsArra... function splitCgiPath (line 200) | func splitCgiPath(fc *frankenPHPContext) { function splitPos (line 233) | func splitPos(path string, splitPath []string) int { function go_update_request_info (line 293) | func go_update_request_info(threadIndex C.uintptr_t, info *C.sapi_reques... function sanitizedPathJoin (line 340) | func sanitizedPathJoin(root, reqPath string) string { constant separator (line 358) | separator = string(filepath.Separator) function ensureLeadingSlash (line 360) | func ensureLeadingSlash(path string) string { function toUnsafeChar (line 372) | func toUnsafeChar(s string) *C.char { function newPersistentZendString (line 377) | func newPersistentZendString(str string) *C.zend_string { function tlsProtocol (line 383) | func tlsProtocol(proto uint16) *C.zend_string { FILE: cgi_test.go function TestEnsureLeadingSlash (line 10) | func TestEnsureLeadingSlash(t *testing.T) { function TestSplitPos (line 36) | func TestSplitPos(t *testing.T) { function TestSplitPosUnicodeSecurityRegression (line 190) | func TestSplitPosUnicodeSecurityRegression(t *testing.T) { FILE: cli.go function ExecuteScriptCLI (line 9) | func ExecuteScriptCLI(script string, args []string) int { function ExecutePHPCode (line 22) | func ExecutePHPCode(phpCode string) int { FILE: cli_test.go function TestExecuteScriptCLI (line 14) | func TestExecuteScriptCLI(t *testing.T) { function TestExecuteCLICode (line 35) | func TestExecuteCLICode(t *testing.T) { function ExampleExecuteScriptCLI (line 48) | func ExampleExecuteScriptCLI() { FILE: context.go type frankenPHPContext (line 16) | type frankenPHPContext struct method closeContext (line 123) | func (fc *frankenPHPContext) closeContext() { method validate (line 133) | func (fc *frankenPHPContext) validate() error { method clientHasClosed (line 154) | func (fc *frankenPHPContext) clientHasClosed() bool { method reject (line 168) | func (fc *frankenPHPContext) reject(err error) { type contextHolder (line 45) | type contextHolder struct function fromContext (line 51) | func fromContext(ctx context.Context) (fctx *frankenPHPContext, ok bool) { function newFrankenPHPContext (line 56) | func newFrankenPHPContext() *frankenPHPContext { function NewRequestWithContext (line 64) | func NewRequestWithContext(r *http.Request, opts ...RequestOption) (*htt... function newDummyContext (line 106) | func newDummyContext(requestPath string, opts ...RequestOption) (*franke... FILE: debugstate.go type ThreadDebugState (line 8) | type ThreadDebugState struct type FrankenPHPDebugState (line 18) | type FrankenPHPDebugState struct function DebugState (line 24) | func DebugState() FrankenPHPDebugState { function threadDebugState (line 41) | func threadDebugState(thread *phpThread) ThreadDebugState { FILE: docs/translate.php function makeGeminiRequest (line 33) | function makeGeminiRequest(string $systemPrompt, string $userPrompt, str... function createPrompt (line 67) | function createPrompt(string $language, string $englishFile, string $cur... function sanitizeMarkdown (line 91) | function sanitizeMarkdown(string $markdown): string FILE: embed.go function init (line 37) | func init() { function untar (line 56) | func untar(dir string) (err error) { function nativeRelPath (line 162) | func nativeRelPath(p string) (string, error) { FILE: env.go function go_init_os_env (line 14) | func go_init_os_env(mainThreadEnv *C.zend_array) { function go_putenv (line 27) | func go_putenv(name *C.char, nameLen C.int, val *C.char, valLen C.int) C... FILE: ext.go function RegisterExtension (line 16) | func RegisterExtension(me unsafe.Pointer) { function registerExtensions (line 20) | func registerExtensions() { FILE: frankenphp.c function frankenphp_version (line 54) | frankenphp_version frankenphp_get_version() { function frankenphp_config (line 61) | frankenphp_config frankenphp_get_config() { function frankenphp_shutdown_dummy_request (line 280) | bool frankenphp_shutdown_dummy_request(void) { function get_full_env (line 290) | void get_full_env(zval *track_vars_array) { function frankenphp_worker_request_startup (line 297) | static int frankenphp_worker_request_startup() { function PHP_FUNCTION (line 360) | PHP_FUNCTION(frankenphp_finish_request) { /* {{{ */ function PHP_FUNCTION (line 376) | PHP_FUNCTION(frankenphp_putenv) { function PHP_FUNCTION (line 433) | PHP_FUNCTION(frankenphp_getenv) { function PHP_FUNCTION (line 461) | PHP_FUNCTION(frankenphp_request_headers) { function add_response_header (line 485) | static void add_response_header(sapi_header_struct *h, function PHP_FUNCTION (line 518) | PHP_FUNCTION(frankenphp_response_headers) /* {{{ */ function PHP_FUNCTION (line 529) | PHP_FUNCTION(frankenphp_handle_request) { function PHP_FUNCTION (line 611) | PHP_FUNCTION(headers_send) { function PHP_FUNCTION (line 632) | PHP_FUNCTION(mercure_publish) { function PHP_FUNCTION (line 674) | PHP_FUNCTION(frankenphp_log) { function PHP_MINIT_FUNCTION (line 695) | PHP_MINIT_FUNCTION(frankenphp) { function frankenphp_startup (line 733) | static int frankenphp_startup(sapi_module_struct *sapi_module) { function frankenphp_deactivate (line 739) | static int frankenphp_deactivate(void) { return SUCCESS; } function frankenphp_ub_write (line 741) | static size_t frankenphp_ub_write(const char *str, size_t str_length) { function frankenphp_send_headers (line 752) | static int frankenphp_send_headers(sapi_headers_struct *sapi_headers) { function frankenphp_sapi_flush (line 777) | static void frankenphp_sapi_flush(void *server_context) { function frankenphp_read_post (line 784) | static size_t frankenphp_read_post(char *buffer, size_t count_bytes) { function frankenphp_register_trusted_var (line 793) | static inline void frankenphp_register_trusted_var(zend_string *z_key, function frankenphp_register_server_vars (line 814) | void frankenphp_register_server_vars(zval *track_vars_array, function zend_string (line 864) | zend_string *frankenphp_init_persistent_string(const char *string, size_... function frankenphp_init_interned_strings (line 876) | static void frankenphp_init_interned_strings(void) { function frankenphp_register_variable_from_request_info (line 890) | static inline void function frankenphp_register_variables_from_request_info (line 903) | static void function frankenphp_register_known_variable (line 923) | void frankenphp_register_known_variable(zend_string *z_key, char *value, function frankenphp_register_variable_safe (line 932) | void frankenphp_register_variable_safe(char *key, char *val, size_t val_... function register_server_variable_filtered (line 948) | static inline void register_server_variable_filtered(const char *key, function frankenphp_register_variables (line 957) | static void frankenphp_register_variables(zval *track_vars_array) { function frankenphp_log_message (line 971) | static void frankenphp_log_message(const char *message, int syslog_type_... function set_thread_name (line 1024) | static void set_thread_name(char *thread_name) { function frankenphp_new_main_thread (line 1175) | int frankenphp_new_main_thread(int num_threads) { function frankenphp_new_php_thread (line 1186) | bool frankenphp_new_php_thread(uintptr_t thread_index) { function frankenphp_request_startup (line 1195) | static int frankenphp_request_startup() { function frankenphp_execute_script (line 1207) | int frankenphp_execute_script(char *file_name) { function cli_register_file_handles (line 1255) | static void cli_register_file_handles(void) { function sapi_cli_register_variables (line 1304) | static void sapi_cli_register_variables(zval *track_vars_array) /* {{{ */ function frankenphp_execute_script_cli (line 1369) | int frankenphp_execute_script_cli(char *script, int argc, char **argv, function frankenphp_reset_opcache (line 1396) | int frankenphp_reset_opcache(void) { function frankenphp_get_current_memory_limit (line 1406) | int frankenphp_get_current_memory_limit() { return PG(memory_limit); } function register_internal_extensions (line 1412) | int register_internal_extensions(void) { function register_extensions (line 1430) | void register_extensions(zend_module_entry **m, int len) { FILE: frankenphp.go type contextKeyStruct (line 42) | type contextKeyStruct struct type ErrRejected (line 72) | type ErrRejected struct method Error (line 77) | func (e ErrRejected) Error() string { type syslogLevel (line 81) | type syslogLevel method String (line 94) | func (l syslogLevel) String() string { constant syslogLevelEmerg (line 84) | syslogLevelEmerg syslogLevel = iota constant syslogLevelAlert (line 85) | syslogLevelAlert constant syslogLevelCrit (line 86) | syslogLevelCrit constant syslogLevelErr (line 87) | syslogLevelErr constant syslogLevelWarn (line 88) | syslogLevelWarn constant syslogLevelNotice (line 89) | syslogLevelNotice constant syslogLevelInfo (line 90) | syslogLevelInfo constant syslogLevelDebug (line 91) | syslogLevelDebug type PHPVersion (line 115) | type PHPVersion struct type PHPConfig (line 124) | type PHPConfig struct function Version (line 132) | func Version() PHPVersion { function Config (line 145) | func Config() PHPConfig { function calculateMaxThreads (line 156) | func calculateMaxThreads(opt *opt) (numWorkers int, _ error) { function Init (line 239) | func Init(options ...Option) error { function Shutdown (line 360) | func Shutdown() { function ServeHTTP (line 390) | func ServeHTTP(responseWriter http.ResponseWriter, request *http.Request... function go_ub_write (line 425) | func go_ub_write(threadIndex C.uintptr_t, cBuf *C.char, length C.size_t)... function go_apache_request_headers (line 469) | func go_apache_request_headers(threadIndex C.uintptr_t) (*C.go_string, C... function addHeader (line 507) | func addHeader(ctx context.Context, fc *frankenPHPContext, h *C.sapi_hea... function splitRawHeader (line 520) | func splitRawHeader(rawHeader *C.char, length int) (string, string) { function go_write_headers (line 551) | func go_write_headers(threadIndex C.uintptr_t, status C.int, headers *C.... function go_sapi_flush (line 603) | func go_sapi_flush(threadIndex C.uintptr_t) bool { function go_read_post (line 633) | func go_read_post(threadIndex C.uintptr_t, cBuf *C.char, countBytes C.si... function go_read_cookies (line 652) | func go_read_cookies(threadIndex C.uintptr_t) *C.char { function getLogger (line 670) | func getLogger(threadIndex C.uintptr_t) (*slog.Logger, context.Context) { function go_log (line 690) | func go_log(threadIndex C.uintptr_t, message *C.char, level C.int) { function go_log_attrs (line 718) | func go_log_attrs(threadIndex C.uintptr_t, message *C.zend_string, cLeve... function mapToAttr (line 742) | func mapToAttr(input map[string]any) []slog.Attr { function go_is_context_done (line 753) | func go_is_context_done(threadIndex C.uintptr_t) C.bool { function convertArgs (line 757) | func convertArgs(args []string) (C.int, []*C.char) { function freeArgs (line 766) | func freeArgs(argv []*C.char) { function timeoutChan (line 772) | func timeoutChan(timeout time.Duration) <-chan time.Time { function resetGlobals (line 780) | func resetGlobals() { FILE: frankenphp.h function HRESULT (line 23) | static inline HRESULT LongLongAdd(LONGLONG llAugend, LONGLONG llAddend, function HRESULT (line 33) | static inline HRESULT LongLongSub(LONGLONG llMinuend, LONGLONG llSubtrah... type go_string (line 55) | typedef struct go_string { type frankenphp_server_vars (line 60) | typedef struct frankenphp_server_vars { type frankenphp_interned_strings_t (line 143) | typedef struct frankenphp_interned_strings_t { type frankenphp_version (line 151) | typedef struct frankenphp_version { type frankenphp_config (line 161) | typedef struct frankenphp_config { FILE: frankenphp.stub.php function frankenphp_handle_request (line 17) | function frankenphp_handle_request(callable $callback): bool {} function headers_send (line 19) | function headers_send(int $status = 200): int {} function frankenphp_finish_request (line 21) | function frankenphp_finish_request(): bool {} function fastcgi_finish_request (line 26) | function fastcgi_finish_request(): bool {} function frankenphp_request_headers (line 28) | function frankenphp_request_headers(): array {} function apache_request_headers (line 33) | function apache_request_headers(): array {} function getallheaders (line 38) | function getallheaders(): array {} function frankenphp_response_headers (line 40) | function frankenphp_response_headers(): array|bool {} function apache_response_headers (line 45) | function apache_response_headers(): array|bool {} function mercure_publish (line 50) | function mercure_publish(string|array $topics, string $data = '', bool $... function frankenphp_log (line 56) | function frankenphp_log(string $message, int $level = 0, array $context ... FILE: frankenphp_arginfo.h function register_frankenphp_symbols (line 69) | static void register_frankenphp_symbols(int module_number) FILE: frankenphp_test.go type testOptions (line 39) | type testOptions struct function runTest (line 52) | func runTest(t *testing.T, test func(func(http.ResponseWriter, *http.Req... function testRequest (line 110) | func testRequest(req *http.Request, handler func(http.ResponseWriter, *h... function testGet (line 122) | func testGet(url string, handler func(http.ResponseWriter, *http.Request... function testPost (line 129) | func testPost(url string, body string, handler func(http.ResponseWriter,... function TestMain (line 137) | func TestMain(m *testing.M) { function TestHelloWorld_module (line 153) | func TestHelloWorld_module(t *testing.T) { testHelloWorld(t, nil) } function TestHelloWorld_worker (line 154) | func TestHelloWorld_worker(t *testing.T) { function testHelloWorld (line 157) | func testHelloWorld(t *testing.T, opts *testOptions) { function TestEnvVarsInPhpIni (line 164) | func TestEnvVarsInPhpIni(t *testing.T) { function TestFinishRequest_module (line 175) | func TestFinishRequest_module(t *testing.T) { testFinishRequest(t, nil) } function TestFinishRequest_worker (line 176) | func TestFinishRequest_worker(t *testing.T) { function testFinishRequest (line 179) | func testFinishRequest(t *testing.T, opts *testOptions) { function TestServerVariable_module (line 186) | func TestServerVariable_module(t *testing.T) { function TestServerVariable_worker (line 189) | func TestServerVariable_worker(t *testing.T) { function testServerVariable (line 192) | func testServerVariable(t *testing.T, opts *testOptions) { function TestPathInfo_module (line 227) | func TestPathInfo_module(t *testing.T) { testPathInfo(t, nil) } function TestPathInfo_worker (line 228) | func TestPathInfo_worker(t *testing.T) { function testPathInfo (line 231) | func testPathInfo(t *testing.T, opts *testOptions) { function TestHeaders_module (line 261) | func TestHeaders_module(t *testing.T) { testHeaders(t, nil) } function TestHeaders_worker (line 262) | func TestHeaders_worker(t *testing.T) { testHeaders(t, &testOptions{work... function testHeaders (line 263) | func testHeaders(t *testing.T, opts *testOptions) { function TestResponseHeaders_module (line 277) | func TestResponseHeaders_module(t *testing.T) { testResponseHeaders(t, n... function TestResponseHeaders_worker (line 278) | func TestResponseHeaders_worker(t *testing.T) { function testResponseHeaders (line 281) | func testResponseHeaders(t *testing.T, opts *testOptions) { function TestInput_module (line 299) | func TestInput_module(t *testing.T) { testInput(t, nil) } function TestInput_worker (line 300) | func TestInput_worker(t *testing.T) { testInput(t, &testOptions{workerSc... function testInput (line 301) | func testInput(t *testing.T, opts *testOptions) { function TestPostSuperGlobals_module (line 310) | func TestPostSuperGlobals_module(t *testing.T) { testPostSuperGlobals(t,... function TestPostSuperGlobals_worker (line 311) | func TestPostSuperGlobals_worker(t *testing.T) { function testPostSuperGlobals (line 314) | func testPostSuperGlobals(t *testing.T, opts *testOptions) { function TestRequestSuperGlobal_module (line 328) | func TestRequestSuperGlobal_module(t *testing.T) { testRequestSuperGloba... function TestRequestSuperGlobal_worker (line 329) | func TestRequestSuperGlobal_worker(t *testing.T) { function testRequestSuperGlobal (line 334) | func testRequestSuperGlobal(t *testing.T, opts *testOptions) { function TestRequestSuperGlobalConditional_worker (line 349) | func TestRequestSuperGlobalConditional_worker(t *testing.T) { function TestCookies_module (line 378) | func TestCookies_module(t *testing.T) { testCookies(t, nil) } function TestCookies_worker (line 379) | func TestCookies_worker(t *testing.T) { testCookies(t, &testOptions{work... function testCookies (line 380) | func testCookies(t *testing.T, opts *testOptions) { function TestMalformedCookie (line 392) | func TestMalformedCookie(t *testing.T) { function TestSession_module (line 413) | func TestSession_module(t *testing.T) { testSession(t, nil) } function TestSession_worker (line 414) | func TestSession_worker(t *testing.T) { function testSession (line 417) | func testSession(t *testing.T, opts *testOptions) { function TestPhpInfo_module (line 443) | func TestPhpInfo_module(t *testing.T) { testPhpInfo(t, nil) } function TestPhpInfo_worker (line 444) | func TestPhpInfo_worker(t *testing.T) { testPhpInfo(t, &testOptions{work... function testPhpInfo (line 445) | func testPhpInfo(t *testing.T, opts *testOptions) { function TestPersistentObject_module (line 459) | func TestPersistentObject_module(t *testing.T) { testPersistentObject(t,... function TestPersistentObject_worker (line 460) | func TestPersistentObject_worker(t *testing.T) { function testPersistentObject (line 463) | func testPersistentObject(t *testing.T, opts *testOptions) { function TestAutoloader_module (line 474) | func TestAutoloader_module(t *testing.T) { testAutoloader(t, nil) } function TestAutoloader_worker (line 475) | func TestAutoloader_worker(t *testing.T) { function testAutoloader (line 478) | func testAutoloader(t *testing.T, opts *testOptions) { function TestLog_error_log_module (line 487) | func TestLog_error_log_module(t *testing.T) { testLog_error_log(t, &test... function TestLog_error_log_worker (line 488) | func TestLog_error_log_worker(t *testing.T) { function testLog_error_log (line 491) | func testLog_error_log(t *testing.T, opts *testOptions) { function TestLog_frankenphp_log_module (line 504) | func TestLog_frankenphp_log_module(t *testing.T) { testLog_frankenphp_lo... function TestLog_frankenphp_log_worker (line 505) | func TestLog_frankenphp_log_worker(t *testing.T) { function testLog_frankenphp_log (line 508) | func testLog_frankenphp_log(t *testing.T, opts *testOptions) { function TestConnectionAbort_module (line 530) | func TestConnectionAbort_module(t *testing.T) { testConnectionAbort(t, &... function TestConnectionAbort_worker (line 531) | func TestConnectionAbort_worker(t *testing.T) { function testConnectionAbort (line 534) | func testConnectionAbort(t *testing.T, opts *testOptions) { function TestException_module (line 559) | func TestException_module(t *testing.T) { testException(t, &testOptions{... function TestException_worker (line 560) | func TestException_worker(t *testing.T) { function testException (line 563) | func testException(t *testing.T, opts *testOptions) { function TestEarlyHints_module (line 572) | func TestEarlyHints_module(t *testing.T) { testEarlyHints(t, &testOption... function TestEarlyHints_worker (line 573) | func TestEarlyHints_worker(t *testing.T) { function testEarlyHints (line 576) | func testEarlyHints(t *testing.T, opts *testOptions) { type streamResponseRecorder (line 604) | type streamResponseRecorder struct method Write (line 609) | func (srr *streamResponseRecorder) Write(buf []byte) (int, error) { function TestFlush_module (line 615) | func TestFlush_module(t *testing.T) { testFlush(t, &testOptions{}) } function TestFlush_worker (line 616) | func TestFlush_worker(t *testing.T) { function testFlush (line 619) | func testFlush(t *testing.T, opts *testOptions) { function TestLargeRequest_module (line 639) | func TestLargeRequest_module(t *testing.T) { function TestLargeRequest_worker (line 642) | func TestLargeRequest_worker(t *testing.T) { function testLargeRequest (line 645) | func testLargeRequest(t *testing.T, opts *testOptions) { function TestVersion (line 658) | func TestVersion(t *testing.T) { function TestFiberNoCgo_module (line 668) | func TestFiberNoCgo_module(t *testing.T) { testFiberNoCgo(t, &testOption... function TestFiberNonCgo_worker (line 669) | func TestFiberNonCgo_worker(t *testing.T) { function testFiberNoCgo (line 672) | func testFiberNoCgo(t *testing.T, opts *testOptions) { function TestFiberBasic_module (line 679) | func TestFiberBasic_module(t *testing.T) { testFiberBasic(t, &testOption... function TestFiberBasic_worker (line 680) | func TestFiberBasic_worker(t *testing.T) { function testFiberBasic (line 683) | func testFiberBasic(t *testing.T, opts *testOptions) { function TestRequestHeaders_module (line 690) | func TestRequestHeaders_module(t *testing.T) { testRequestHeaders(t, &te... function TestRequestHeaders_worker (line 691) | func TestRequestHeaders_worker(t *testing.T) { function testRequestHeaders (line 694) | func testRequestHeaders(t *testing.T, opts *testOptions) { function TestFailingWorker (line 706) | func TestFailingWorker(t *testing.T) { function TestEnv_module (line 716) | func TestEnv_module(t *testing.T) { function TestEnv_worker (line 719) | func TestEnv_worker(t *testing.T) { function testEnv (line 724) | func testEnv(t *testing.T, opts *testOptions) { function TestEnvIsResetInNonWorkerMode (line 742) | func TestEnvIsResetInNonWorkerMode(t *testing.T) { function TestEnvIsNotResetInWorkerMode (line 756) | func TestEnvIsNotResetInWorkerMode(t *testing.T) { function TestModificationsToEnvPersistAcrossRequests (line 770) | func TestModificationsToEnvPersistAcrossRequests(t *testing.T) { function TestFileUpload_module (line 782) | func TestFileUpload_module(t *testing.T) { testFileUpload(t, &testOption... function TestFileUpload_worker (line 783) | func TestFileUpload_worker(t *testing.T) { function testFileUpload (line 786) | func testFileUpload(t *testing.T, opts *testOptions) { function ExampleServeHTTP (line 805) | func ExampleServeHTTP() { function BenchmarkHelloWorld (line 824) | func BenchmarkHelloWorld(b *testing.B) { function BenchmarkEcho (line 847) | func BenchmarkEcho(b *testing.B) { function BenchmarkServerSuperGlobal (line 910) | func BenchmarkServerSuperGlobal(b *testing.B) { function BenchmarkUncommonHeaders (line 976) | func BenchmarkUncommonHeaders(b *testing.B) { function TestRejectInvalidHeaders_module (line 1024) | func TestRejectInvalidHeaders_module(t *testing.T) { testRejectInvalidHe... function TestRejectInvalidHeaders_worker (line 1025) | func TestRejectInvalidHeaders_worker(t *testing.T) { function testRejectInvalidHeaders (line 1028) | func testRejectInvalidHeaders(t *testing.T, opts *testOptions) { function TestFlushEmptyResponse_module (line 1045) | func TestFlushEmptyResponse_module(t *testing.T) { testFlushEmptyRespons... function TestFlushEmptyResponse_worker (line 1046) | func TestFlushEmptyResponse_worker(t *testing.T) { function testFlushEmptyResponse (line 1050) | func testFlushEmptyResponse(t *testing.T, opts *testOptions) { function TestFileStreamInWorkerMode (line 1059) | func TestFileStreamInWorkerMode(t *testing.T) { function FuzzRequest (line 1074) | func FuzzRequest(f *testing.F) { function TestSessionHandlerReset_worker (line 1108) | func TestSessionHandlerReset_worker(t *testing.T) { function TestSessionHandlerPreLoopPreserved_worker (line 1148) | func TestSessionHandlerPreLoopPreserved_worker(t *testing.T) { function TestSessionNoLeakBetweenRequests_worker (line 1197) | func TestSessionNoLeakBetweenRequests_worker(t *testing.T) { function TestSessionNoLeakAfterExit_worker (line 1249) | func TestSessionNoLeakAfterExit_worker(t *testing.T) { function TestOpcachePreload_module (line 1305) | func TestOpcachePreload_module(t *testing.T) { function TestOpcachePreload_worker (line 1309) | func TestOpcachePreload_worker(t *testing.T) { function testOpcachePreload (line 1313) | func testOpcachePreload(t *testing.T, opts *testOptions) { FILE: hotreload.go function WithHotReload (line 15) | func WithHotReload(topic string, hub *mercure.Hub, patterns []string) Op... FILE: internal/cpu/cpu_unix.go function ProbeCPUs (line 17) | func ProbeCPUs(probeTime time.Duration, maxCPUUsage float64, abort chan ... FILE: internal/cpu/cpu_windows.go function ProbeCPUs (line 8) | func ProbeCPUs(probeTime time.Duration, _ float64, abort chan struct{}) ... FILE: internal/extgen/arginfo.go type arginfoGenerator (line 12) | type arginfoGenerator struct method generate (line 16) | func (ag *arginfoGenerator) generate() error { method fixArginfoFile (line 38) | func (ag *arginfoGenerator) fixArginfoFile(stubFile string) error { FILE: internal/extgen/cfile.go type cFileGenerator (line 16) | type cFileGenerator struct method generate (line 28) | func (cg *cFileGenerator) generate() error { method buildContent (line 38) | func (cg *cFileGenerator) buildContent() (string, error) { method getTemplateContent (line 58) | func (cg *cFileGenerator) getTemplateContent() (string, error) { type cTemplateData (line 20) | type cTemplateData struct function escapeCString (line 80) | func escapeCString(s string) string { FILE: internal/extgen/cfile_namespace_test.go function TestNamespacedClassName (line 11) | func TestNamespacedClassName(t *testing.T) { function TestCFileGenerationWithNamespace (line 52) | func TestCFileGenerationWithNamespace(t *testing.T) { function TestCFileGenerationWithoutNamespace (line 112) | func TestCFileGenerationWithoutNamespace(t *testing.T) { function TestCFileGenerationWithNamespacedConstants (line 133) | func TestCFileGenerationWithNamespacedConstants(t *testing.T) { function TestCFileGenerationWithoutNamespacedConstants (line 245) | func TestCFileGenerationWithoutNamespacedConstants(t *testing.T) { function TestCFileTemplateFunctionMapCString (line 325) | func TestCFileTemplateFunctionMapCString(t *testing.T) { FILE: internal/extgen/cfile_phpmethod_test.go function TestCFile_NamespacedPHPMethods (line 9) | func TestCFile_NamespacedPHPMethods(t *testing.T) { function TestCFile_PHP_METHOD_Integration (line 129) | func TestCFile_PHP_METHOD_Integration(t *testing.T) { function TestCFile_ClassMethodStringReturn (line 189) | func TestCFile_ClassMethodStringReturn(t *testing.T) { FILE: internal/extgen/cfile_test.go function TestCFileGenerator_Generate (line 12) | func TestCFileGenerator_Generate(t *testing.T) { function TestCFileGenerator_BuildContent (line 62) | func TestCFileGenerator_BuildContent(t *testing.T) { function TestCFileGenerator_GetTemplateContent (line 147) | func TestCFileGenerator_GetTemplateContent(t *testing.T) { function TestCFileIntegrationWithGenerators (line 206) | func TestCFileIntegrationWithGenerators(t *testing.T) { function TestCFileErrorHandling (line 278) | func TestCFileErrorHandling(t *testing.T) { function TestCFileSpecialCharacters (line 293) | func TestCFileSpecialCharacters(t *testing.T) { function testCFileBasicStructure (line 322) | func testCFileBasicStructure(t *testing.T, content, baseName string) { function testCFileFunctions (line 338) | func testCFileFunctions(t *testing.T, content string, functions []phpFun... function testCFileClasses (line 345) | func testCFileClasses(t *testing.T, content string, classes []phpClass) { function TestCFileContentValidation (line 364) | func TestCFileContentValidation(t *testing.T) { function TestCFileConstants (line 403) | func TestCFileConstants(t *testing.T) { function TestCFileTemplateErrorHandling (line 452) | func TestCFileTemplateErrorHandling(t *testing.T) { function TestEscapeCString (line 463) | func TestEscapeCString(t *testing.T) { FILE: internal/extgen/classparser.go type exportDirective (line 19) | type exportDirective struct type classParser (line 24) | type classParser struct method Parse (line 26) | func (cp *classParser) Parse(filename string) ([]phpClass, error) { method parse (line 30) | func (cp *classParser) parse(filename string) (classes []phpClass, err... method collectExportDirectives (line 106) | func (cp *classParser) collectExportDirectives(node *ast.File, fset *t... method extractPHPClassCommentWithLine (line 124) | func (cp *classParser) extractPHPClassCommentWithLine(commentGroup *as... method parseStructFields (line 139) | func (cp *classParser) parseStructFields(fields []*ast.Field) []phpCla... method parseStructField (line 152) | func (cp *classParser) parseStructField(fieldName string, field *ast.F... method typeToString (line 169) | func (cp *classParser) typeToString(expr ast.Expr) string { method goTypeToPHPType (line 193) | func (cp *classParser) goTypeToPHPType(goType string) phpType { method parseMethods (line 207) | func (cp *classParser) parseMethods(filename string) (methods []phpCla... method parseMethodSignature (line 294) | func (cp *classParser) parseMethodSignature(className, signature strin... method parseMethodParameter (line 332) | func (cp *classParser) parseMethodParameter(paramStr string) (phpParam... method sanitizeDefaultValue (line 356) | func (cp *classParser) sanitizeDefaultValue(value string) string { method extractGoMethodFunction (line 368) | func (cp *classParser) extractGoMethodFunction(scanner *bufio.Scanner,... FILE: internal/extgen/classparser_test.go function TestClassParser (line 12) | func TestClassParser(t *testing.T) { function TestClassMethods (line 121) | func TestClassMethods(t *testing.T) { function TestMethodParameterParsing (line 187) | func TestMethodParameterParsing(t *testing.T) { function TestGoTypeToPHPType (line 268) | func TestGoTypeToPHPType(t *testing.T) { function TestTypeToString (line 298) | func TestTypeToString(t *testing.T) { function TestClassParserUnsupportedTypes (line 366) | func TestClassParserUnsupportedTypes(t *testing.T) { function TestClassParserGoTypeMismatch (line 513) | func TestClassParserGoTypeMismatch(t *testing.T) { FILE: internal/extgen/constants_test.go function TestConstantsIntegration (line 12) | func TestConstantsIntegration(t *testing.T) { function TestConstantsIntegrationOctal (line 87) | func TestConstantsIntegrationOctal(t *testing.T) { FILE: internal/extgen/constparser.go type ConstantParser (line 16) | type ConstantParser struct method parse (line 18) | func (cp *ConstantParser) parse(filename string) (constants []phpConst... function determineConstantType (line 181) | func determineConstantType(value string) phpType { FILE: internal/extgen/constparser_test.go function TestConstantParser (line 12) | func TestConstantParser(t *testing.T) { function TestConstantParserErrors (line 173) | func TestConstantParserErrors(t *testing.T) { function TestConstantParserIotaSequence (line 218) | func TestConstantParserIotaSequence(t *testing.T) { function TestConstantParserConstBlock (line 247) | func TestConstantParserConstBlock(t *testing.T) { function TestConstantParserConstBlockWithBlockLevelDirective (line 282) | func TestConstantParserConstBlockWithBlockLevelDirective(t *testing.T) { function TestConstantParserMixedConstBlockAndIndividual (line 313) | func TestConstantParserMixedConstBlockAndIndividual(t *testing.T) { function TestConstantParserClassConstBlock (line 357) | func TestConstantParserClassConstBlock(t *testing.T) { function TestConstantParserClassConstBlockWithIota (line 388) | func TestConstantParserClassConstBlockWithIota(t *testing.T) { function TestConstantParserTypeDetection (line 420) | func TestConstantParserTypeDetection(t *testing.T) { function TestConstantParserClassConstants (line 450) | func TestConstantParserClassConstants(t *testing.T) { function TestConstantParserRegexMatch (line 554) | func TestConstantParserRegexMatch(t *testing.T) { function TestConstantParserClassConstRegex (line 577) | func TestConstantParserClassConstRegex(t *testing.T) { function TestConstantParserDeclRegex (line 612) | func TestConstantParserDeclRegex(t *testing.T) { function TestPHPConstantCValue (line 648) | func TestPHPConstantCValue(t *testing.T) { FILE: internal/extgen/docs.go type DocumentationGenerator (line 13) | type DocumentationGenerator struct method generate (line 23) | func (dg *DocumentationGenerator) generate() error { method generateMarkdown (line 33) | func (dg *DocumentationGenerator) generateMarkdown() (string, error) { type DocTemplateData (line 17) | type DocTemplateData struct FILE: internal/extgen/docs_test.go function TestDocumentationGenerator_Generate (line 12) | func TestDocumentationGenerator_Generate(t *testing.T) { function TestDocumentationGenerator_GenerateMarkdown (line 144) | func TestDocumentationGenerator_GenerateMarkdown(t *testing.T) { function TestDocumentationGenerator_Generate_InvalidDirectory (line 305) | func TestDocumentationGenerator_Generate_InvalidDirectory(t *testing.T) { function TestDocumentationGenerator_TemplateError (line 321) | func TestDocumentationGenerator_TemplateError(t *testing.T) { function BenchmarkDocumentationGenerator_GenerateMarkdown (line 343) | func BenchmarkDocumentationGenerator_GenerateMarkdown(b *testing.B) { FILE: internal/extgen/errors.go type GeneratorError (line 5) | type GeneratorError struct method Error (line 11) | func (e *GeneratorError) Error() string { FILE: internal/extgen/funcparser.go type FuncParser (line 15) | type FuncParser struct method parse (line 17) | func (fp *FuncParser) parse(filename string) (functions []phpFunction,... method extractGoFunction (line 90) | func (fp *FuncParser) extractGoFunction(scanner *bufio.Scanner, firstL... method parseSignature (line 115) | func (fp *FuncParser) parseSignature(signature string) (*phpFunction, ... method parseParameter (line 150) | func (fp *FuncParser) parseParameter(paramStr string) (phpParameter, e... method sanitizeDefaultValue (line 174) | func (fp *FuncParser) sanitizeDefaultValue(value string) string { FILE: internal/extgen/funcparser_test.go function TestFunctionParser (line 12) | func TestFunctionParser(t *testing.T) { function TestSignatureParsing (line 129) | func TestSignatureParsing(t *testing.T) { function TestParameterParsing (line 217) | func TestParameterParsing(t *testing.T) { function TestFunctionParserUnsupportedTypes (line 297) | func TestFunctionParserUnsupportedTypes(t *testing.T) { function TestFunctionParserGoTypeMismatch (line 398) | func TestFunctionParserGoTypeMismatch(t *testing.T) { FILE: internal/extgen/generator.go type Generator (line 8) | type Generator struct method Generate (line 19) | func (g *Generator) Generate() error { method setupBuildDirectory (line 52) | func (g *Generator) setupBuildDirectory() error { method parseSource (line 56) | func (g *Generator) parseSource() error { method generateStubFile (line 86) | func (g *Generator) generateStubFile() error { method generateArginfo (line 95) | func (g *Generator) generateArginfo() error { method generateHeaderFile (line 104) | func (g *Generator) generateHeaderFile() error { method generateCFile (line 113) | func (g *Generator) generateCFile() error { method generateGoFile (line 122) | func (g *Generator) generateGoFile() error { method generateDocumentation (line 131) | func (g *Generator) generateDocumentation() error { FILE: internal/extgen/gofile.go type GoFileGenerator (line 18) | type GoFileGenerator struct method generate (line 33) | func (gg *GoFileGenerator) generate() error { method buildContent (line 44) | func (gg *GoFileGenerator) buildContent() (string, error) { method getTemplateContent (line 77) | func (gg *GoFileGenerator) getTemplateContent(data goTemplateData) (st... method phpTypeToGoType (line 123) | func (gg *GoFileGenerator) phpTypeToGoType(phpT phpType) string { type goTemplateData (line 22) | type goTemplateData struct type GoMethodSignature (line 101) | type GoMethodSignature struct type GoParameter (line 107) | type GoParameter struct function extractGoFunctionName (line 132) | func extractGoFunctionName(goFunction string) string { function extractGoFunctionSignatureParams (line 153) | func extractGoFunctionSignatureParams(goFunction string) string { function extractGoFunctionSignatureReturn (line 182) | func extractGoFunctionSignatureReturn(goFunction string) string { function extractGoFunctionCallParams (line 215) | func extractGoFunctionCallParams(goFunction string) string { FILE: internal/extgen/gofile_test.go function TestGoFileGenerator_Generate (line 15) | func TestGoFileGenerator_Generate(t *testing.T) { function TestGoFileGenerator_BuildContent (line 90) | func TestGoFileGenerator_BuildContent(t *testing.T) { function TestGoFileGenerator_PackageNameSanitization (line 285) | func TestGoFileGenerator_PackageNameSanitization(t *testing.T) { function TestGoFileGenerator_ErrorHandling (line 319) | func TestGoFileGenerator_ErrorHandling(t *testing.T) { function TestGoFileGenerator_ComplexScenario (line 361) | func TestGoFileGenerator_ComplexScenario(t *testing.T) { function TestGoFileGenerator_MethodWrapperWithNullableParams (line 441) | func TestGoFileGenerator_MethodWrapperWithNullableParams(t *testing.T) { function TestGoFileGenerator_MethodWrapperWithArrayParams (line 522) | func TestGoFileGenerator_MethodWrapperWithArrayParams(t *testing.T) { function TestGoFileGenerator_Idempotency (line 623) | func TestGoFileGenerator_Idempotency(t *testing.T) { function TestGoFileGenerator_HeaderComments (line 683) | func TestGoFileGenerator_HeaderComments(t *testing.T) { function TestExtractGoFunctionName (line 718) | func TestExtractGoFunctionName(t *testing.T) { function TestExtractGoFunctionSignatureParams (line 764) | func TestExtractGoFunctionSignatureParams(t *testing.T) { function TestExtractGoFunctionSignatureReturn (line 810) | func TestExtractGoFunctionSignatureReturn(t *testing.T) { function TestExtractGoFunctionCallParams (line 856) | func TestExtractGoFunctionCallParams(t *testing.T) { function TestGoFileGenerator_SourceFilePreservation (line 892) | func TestGoFileGenerator_SourceFilePreservation(t *testing.T) { function TestGoFileGenerator_WrapperParameterForwarding (line 940) | func TestGoFileGenerator_WrapperParameterForwarding(t *testing.T) { function TestGoFileGenerator_MalformedSource (line 995) | func TestGoFileGenerator_MalformedSource(t *testing.T) { function TestGoFileGenerator_MethodWrapperWithNullableArrayParams (line 1051) | func TestGoFileGenerator_MethodWrapperWithNullableArrayParams(t *testing... function createTempSourceFile (line 1112) | func createTempSourceFile(t *testing.T, content string) string { function TestGoFileGenerator_MethodWrapperWithCallableParams (line 1121) | func TestGoFileGenerator_MethodWrapperWithCallableParams(t *testing.T) { function TestGoFileGenerator_phpTypeToGoType (line 1208) | func TestGoFileGenerator_phpTypeToGoType(t *testing.T) { function testGeneratedFileBasicStructure (line 1240) | func testGeneratedFileBasicStructure(t *testing.T, content, expectedPack... function testGeneratedFileWrappers (line 1259) | func testGeneratedFileWrappers(t *testing.T, content string, functions [... function computeFileHash (line 1275) | func computeFileHash(t *testing.T, filename string) string { function assertContainsHeaderComment (line 1283) | func assertContainsHeaderComment(t *testing.T, filename string) { FILE: internal/extgen/hfile.go type HeaderGenerator (line 15) | type HeaderGenerator struct method generate (line 26) | func (hg *HeaderGenerator) generate() error { method buildContent (line 36) | func (hg *HeaderGenerator) buildContent() (string, error) { type TemplateData (line 19) | type TemplateData struct FILE: internal/extgen/hfile_test.go function TestHeaderGenerator_Generate (line 12) | func TestHeaderGenerator_Generate(t *testing.T) { function TestHeaderGenerator_BuildContent (line 33) | func TestHeaderGenerator_BuildContent(t *testing.T) { function TestHeaderGenerator_HeaderGuardGeneration (line 93) | func TestHeaderGenerator_HeaderGuardGeneration(t *testing.T) { function TestHeaderGenerator_BasicStructure (line 123) | func TestHeaderGenerator_BasicStructure(t *testing.T) { function TestHeaderGenerator_CompleteStructure (line 139) | func TestHeaderGenerator_CompleteStructure(t *testing.T) { function TestHeaderGenerator_ErrorHandling (line 171) | func TestHeaderGenerator_ErrorHandling(t *testing.T) { function TestHeaderGenerator_EmptyBaseName (line 182) | func TestHeaderGenerator_EmptyBaseName(t *testing.T) { function TestHeaderGenerator_ContentValidation (line 192) | func TestHeaderGenerator_ContentValidation(t *testing.T) { function TestHeaderGenerator_SpecialCharacterHandling (line 204) | func TestHeaderGenerator_SpecialCharacterHandling(t *testing.T) { function TestHeaderGenerator_TemplateErrorHandling (line 235) | func TestHeaderGenerator_TemplateErrorHandling(t *testing.T) { function TestHeaderGenerator_GuardConsistency (line 243) | func TestHeaderGenerator_GuardConsistency(t *testing.T) { function TestHeaderGenerator_MinimalContent (line 257) | func TestHeaderGenerator_MinimalContent(t *testing.T) { function testHeaderBasicStructure (line 276) | func testHeaderBasicStructure(t *testing.T, content, baseName string) { function testHeaderIncludeGuards (line 299) | func testHeaderIncludeGuards(t *testing.T, content, expectedGuard string) { FILE: internal/extgen/integration_test.go constant testModuleName (line 18) | testModuleName = "github.com/frankenphp/test-extension" type IntegrationTestSuite (line 21) | type IntegrationTestSuite struct method createGoModule (line 62) | func (s *IntegrationTestSuite) createGoModule(sourceFile string) (stri... method runExtensionInit (line 102) | func (s *IntegrationTestSuite) runExtensionInit(sourceFile string) err... method cleanupGeneratedFiles (line 122) | func (s *IntegrationTestSuite) cleanupGeneratedFiles(originalSourceFil... method compileFrankenPHP (line 146) | func (s *IntegrationTestSuite) compileFrankenPHP(moduleDir string) (st... method runPHPCode (line 201) | func (s *IntegrationTestSuite) runPHPCode(phpCode string) (string, err... method verifyPHPSymbols (line 223) | func (s *IntegrationTestSuite) verifyPHPSymbols(functions []string, cl... method verifyFunctionBehavior (line 256) | func (s *IntegrationTestSuite) verifyFunctionBehavior(phpCode string, ... function setupTest (line 30) | func setupTest(t *testing.T) *IntegrationTestSuite { function TestBasicFunction (line 271) | func TestBasicFunction(t *testing.T) { function TestClassMethodsIntegration (line 348) | func TestClassMethodsIntegration(t *testing.T) { function TestConstants (line 460) | func TestConstants(t *testing.T) { function TestNamespace (line 561) | func TestNamespace(t *testing.T) { function TestInvalidSignature (line 651) | func TestInvalidSignature(t *testing.T) { function TestTypeMismatch (line 667) | func TestTypeMismatch(t *testing.T) { function TestMissingGenStub (line 687) | func TestMissingGenStub(t *testing.T) { function TestCallable (line 716) | func TestCallable(t *testing.T) { FILE: internal/extgen/namespace_test.go function TestNamespaceParser (line 11) | func TestNamespaceParser(t *testing.T) { function TestGeneratorWithNamespace (line 84) | func TestGeneratorWithNamespace(t *testing.T) { FILE: internal/extgen/nodes.go type phpType (line 9) | type phpType constant phpString (line 12) | phpString phpType = "string" constant phpInt (line 13) | phpInt phpType = "int" constant phpFloat (line 14) | phpFloat phpType = "float" constant phpBool (line 15) | phpBool phpType = "bool" constant phpArray (line 16) | phpArray phpType = "array" constant phpObject (line 17) | phpObject phpType = "object" constant phpMixed (line 18) | phpMixed phpType = "mixed" constant phpVoid (line 19) | phpVoid phpType = "void" constant phpNull (line 20) | phpNull phpType = "null" constant phpTrue (line 21) | phpTrue phpType = "true" constant phpFalse (line 22) | phpFalse phpType = "false" constant phpCallable (line 23) | phpCallable phpType = "callable" type phpFunction (line 26) | type phpFunction struct type phpParameter (line 36) | type phpParameter struct type phpClass (line 44) | type phpClass struct type phpClassMethod (line 51) | type phpClassMethod struct type phpClassProperty (line 64) | type phpClassProperty struct type phpConstant (line 71) | type phpConstant struct method CValue (line 81) | func (c phpConstant) CValue() string { FILE: internal/extgen/nsparser.go type NamespaceParser (line 11) | type NamespaceParser struct method parse (line 15) | func (np *NamespaceParser) parse(filename string) (string, error) { FILE: internal/extgen/paramparser.go type ParameterParser (line 8) | type ParameterParser struct method analyzeParameters (line 15) | func (pp *ParameterParser) analyzeParameters(params []phpParameter) Pa... method generateParamDeclarations (line 27) | func (pp *ParameterParser) generateParamDeclarations(params []phpParam... method generateSingleParamDeclaration (line 41) | func (pp *ParameterParser) generateSingleParamDeclaration(param phpPar... method getDefaultValue (line 82) | func (pp *ParameterParser) getDefaultValue(param phpParameter, fallbac... method generateParamParsing (line 89) | func (pp *ParameterParser) generateParamParsing(params []phpParameter,... method generateParamParsingMacro (line 111) | func (pp *ParameterParser) generateParamParsingMacro(param phpParamete... method generateGoCallParams (line 153) | func (pp *ParameterParser) generateGoCallParams(params []phpParameter)... method generateSingleGoCallParam (line 166) | func (pp *ParameterParser) generateSingleGoCallParam(param phpParamete... type ParameterInfo (line 10) | type ParameterInfo struct FILE: internal/extgen/paramparser_test.go function TestParameterParser_AnalyzeParameters (line 9) | func TestParameterParser_AnalyzeParameters(t *testing.T) { function TestParameterParser_GenerateParamDeclarations (line 58) | func TestParameterParser_GenerateParamDeclarations(t *testing.T) { function TestParameterParser_GenerateParamParsing (line 213) | func TestParameterParser_GenerateParamParsing(t *testing.T) { function TestParameterParser_GenerateGoCallParams (line 263) | func TestParameterParser_GenerateGoCallParams(t *testing.T) { function TestParameterParser_GenerateParamParsingMacro (line 349) | func TestParameterParser_GenerateParamParsingMacro(t *testing.T) { function TestParameterParser_GetDefaultValue (line 442) | func TestParameterParser_GetDefaultValue(t *testing.T) { function TestParameterParser_GenerateSingleGoCallParam (line 479) | func TestParameterParser_GenerateSingleGoCallParam(t *testing.T) { function TestParameterParser_GenerateSingleParamDeclaration (line 562) | func TestParameterParser_GenerateSingleParamDeclaration(t *testing.T) { function TestParameterParser_Integration (line 645) | func TestParameterParser_Integration(t *testing.T) { FILE: internal/extgen/parser.go type SourceParser (line 3) | type SourceParser struct method ParseFunctions (line 6) | func (p *SourceParser) ParseFunctions(filename string) ([]phpFunction,... method ParseClasses (line 12) | func (p *SourceParser) ParseClasses(filename string) ([]phpClass, erro... method ParseConstants (line 18) | func (p *SourceParser) ParseConstants(filename string) ([]phpConstant,... method ParseNamespace (line 24) | func (p *SourceParser) ParseNamespace(filename string) (string, error) { FILE: internal/extgen/phpfunc.go type PHPFuncGenerator (line 8) | type PHPFuncGenerator struct method generate (line 13) | func (pfg *PHPFuncGenerator) generate(fn phpFunction) string { method generateGoCall (line 38) | func (pfg *PHPFuncGenerator) generateGoCall(fn phpFunction) string { method getCReturnType (line 61) | func (pfg *PHPFuncGenerator) getCReturnType(returnType phpType) string { method generateReturnCode (line 74) | func (pfg *PHPFuncGenerator) generateReturnCode(returnType phpType) st... FILE: internal/extgen/phpfunc_namespace_test.go function TestPHPFuncGenerator_NamespacedFunctions (line 9) | func TestPHPFuncGenerator_NamespacedFunctions(t *testing.T) { function TestGetNamespacedFunctionName (line 56) | func TestGetNamespacedFunctionName(t *testing.T) { function TestCFileWithNamespacedPHPFunctions (line 92) | func TestCFileWithNamespacedPHPFunctions(t *testing.T) { FILE: internal/extgen/phpfunc_test.go function TestPHPFunctionGenerator_Generate (line 10) | func TestPHPFunctionGenerator_Generate(t *testing.T) { function TestPHPFunctionGenerator_GenerateParamDeclarations (line 156) | func TestPHPFunctionGenerator_GenerateParamDeclarations(t *testing.T) { function TestPHPFunctionGenerator_GenerateReturnCode (line 234) | func TestPHPFunctionGenerator_GenerateReturnCode(t *testing.T) { function TestPHPFunctionGenerator_GenerateGoCallParams (line 301) | func TestPHPFunctionGenerator_GenerateGoCallParams(t *testing.T) { function TestPHPFunctionGenerator_AnalyzeParameters (line 370) | func TestPHPFunctionGenerator_AnalyzeParameters(t *testing.T) { FILE: internal/extgen/srcanalyzer.go type SourceAnalyzer (line 11) | type SourceAnalyzer struct method analyze (line 13) | func (sa *SourceAnalyzer) analyze(filename string) (packageName string... method extractVariables (line 33) | func (sa *SourceAnalyzer) extractVariables(content string) []string { method extractInternalFunctions (line 78) | func (sa *SourceAnalyzer) extractInternalFunctions(content string) []s... FILE: internal/extgen/srcanalyzer_test.go function TestSourceAnalyzer_Analyze (line 13) | func TestSourceAnalyzer_Analyze(t *testing.T) { function TestSourceAnalyzer_Analyze_InvalidFile (line 249) | func TestSourceAnalyzer_Analyze_InvalidFile(t *testing.T) { function TestSourceAnalyzer_ExtractInternalFunctions (line 273) | func TestSourceAnalyzer_ExtractInternalFunctions(t *testing.T) { function TestSourceAnalyzer_InternalFunctionPreservation (line 384) | func TestSourceAnalyzer_InternalFunctionPreservation(t *testing.T) { function TestSourceAnalyzer_VariableBlockPreservation (line 446) | func TestSourceAnalyzer_VariableBlockPreservation(t *testing.T) { function BenchmarkSourceAnalyzer_Analyze (line 488) | func BenchmarkSourceAnalyzer_Analyze(b *testing.B) { function BenchmarkSourceAnalyzer_ExtractInternalFunctions (line 527) | func BenchmarkSourceAnalyzer_ExtractInternalFunctions(b *testing.B) { FILE: internal/extgen/stub.go type StubGenerator (line 13) | type StubGenerator struct method generate (line 17) | func (sg *StubGenerator) generate() error { method buildContent (line 27) | func (sg *StubGenerator) buildContent() (string, error) { function getPhpTypeAnnotation (line 44) | func getPhpTypeAnnotation(t phpType) string { FILE: internal/extgen/stub_test.go function TestStubGenerator_Generate (line 11) | func TestStubGenerator_Generate(t *testing.T) { function TestStubGenerator_BuildContent (line 72) | func TestStubGenerator_BuildContent(t *testing.T) { function TestStubGenerator_FunctionSignatures (line 181) | func TestStubGenerator_FunctionSignatures(t *testing.T) { function TestStubGenerator_ClassGeneration (line 235) | func TestStubGenerator_ClassGeneration(t *testing.T) { function TestStubGenerator_MultipleItems (line 282) | func TestStubGenerator_MultipleItems(t *testing.T) { function TestStubGenerator_ErrorHandling (line 334) | func TestStubGenerator_ErrorHandling(t *testing.T) { function TestStubGenerator_EmptyContent (line 348) | func TestStubGenerator_EmptyContent(t *testing.T) { function TestStubGenerator_PHPSyntaxValidation (line 371) | func TestStubGenerator_PHPSyntaxValidation(t *testing.T) { function TestStubGenerator_ClassConstants (line 417) | func TestStubGenerator_ClassConstants(t *testing.T) { function TestStubGenerator_FileStructure (line 523) | func TestStubGenerator_FileStructure(t *testing.T) { function testStubBasicStructure (line 556) | func testStubBasicStructure(t *testing.T, content string) { function testStubFunctions (line 572) | func testStubFunctions(t *testing.T, content string, functions []phpFunc... function testStubClasses (line 579) | func testStubClasses(t *testing.T, content string, classes []phpClass) { function testStubConstants (line 591) | func testStubConstants(t *testing.T, content string, constants []phpCons... FILE: internal/extgen/utils.go function writeFile (line 9) | func writeFile(filename, content string) error { function readFile (line 13) | func readFile(filename string) (string, error) { function NamespacedName (line 25) | func NamespacedName(namespace, name string) string { function SanitizePackageName (line 34) | func SanitizePackageName(name string) string { FILE: internal/extgen/utils_namespace_test.go function TestNamespacedName (line 9) | func TestNamespacedName(t *testing.T) { FILE: internal/extgen/utils_test.go function TestWriteFile (line 12) | func TestWriteFile(t *testing.T) { function TestReadFile (line 81) | func TestReadFile(t *testing.T) { function TestSanitizePackageName (line 130) | func TestSanitizePackageName(t *testing.T) { function BenchmarkSanitizePackageName (line 231) | func BenchmarkSanitizePackageName(b *testing.B) { FILE: internal/extgen/validator.go type Validator (line 25) | type Validator struct method validateFunction (line 27) | func (v *Validator) validateFunction(fn phpFunction) error { method validateParameter (line 49) | func (v *Validator) validateParameter(param phpParameter) error { method validateReturnType (line 65) | func (v *Validator) validateReturnType(returnType phpType) error { method validateClass (line 72) | func (v *Validator) validateClass(class phpClass) error { method validateClassProperty (line 90) | func (v *Validator) validateClassProperty(prop phpClassProperty) error { method validateTypes (line 107) | func (v *Validator) validateTypes(fn phpFunction) error { method validateGoFunctionSignatureWithOptions (line 122) | func (v *Validator) validateGoFunctionSignatureWithOptions(phpFunc php... method phpTypeToGoType (line 197) | func (v *Validator) phpTypeToGoType(t phpType, isNullable bool) string { method isCompatibleGoType (line 226) | func (v *Validator) isCompatibleGoType(expectedType, actualType string... method phpReturnTypeToGoType (line 243) | func (v *Validator) phpReturnTypeToGoType(phpReturnType phpType) string { method goTypeToString (line 262) | func (v *Validator) goTypeToString(expr ast.Expr) string { method goReturnTypeToString (line 275) | func (v *Validator) goReturnTypeToString(results *ast.FieldList) string { FILE: internal/extgen/validator_test.go function TestValidateFunction (line 9) | func TestValidateFunction(t *testing.T) { function TestValidateReturnType (line 172) | func TestValidateReturnType(t *testing.T) { function TestValidateClassProperty (line 239) | func TestValidateClassProperty(t *testing.T) { function TestValidateParameter (line 304) | func TestValidateParameter(t *testing.T) { function TestValidateClass (line 411) | func TestValidateClass(t *testing.T) { function TestValidateTypes (line 484) | func TestValidateTypes(t *testing.T) { function TestValidateGoFunctionSignature (line 628) | func TestValidateGoFunctionSignature(t *testing.T) { function TestPhpTypeToGoType (line 856) | func TestPhpTypeToGoType(t *testing.T) { function TestPhpReturnTypeToGoType (line 886) | func TestPhpReturnTypeToGoType(t *testing.T) { FILE: internal/fastabs/filepath.go function FastAbs (line 11) | func FastAbs(path string) (string, error) { FILE: internal/fastabs/filepath_unix.go function init (line 15) | func init() { function FastAbs (line 31) | func FastAbs(path string) (string, error) { FILE: internal/memory/memory_linux.go function TotalSysMemory (line 5) | func TotalSysMemory() uint64 { FILE: internal/memory/memory_others.go function TotalSysMemory (line 6) | func TotalSysMemory() uint64 { FILE: internal/phpheaders/phpheaders.go function GetUnCommonHeader (line 130) | func GetUnCommonHeader(ctx context.Context, key string) string { FILE: internal/phpheaders/phpheaders_test.go function TestAllCommonHeadersAreCorrect (line 10) | func TestAllCommonHeadersAreCorrect(t *testing.T) { FILE: internal/state/state.go type State (line 11) | type State method String (line 35) | func (s State) String() string { constant Reserved (line 15) | Reserved State = iota constant Booting (line 16) | Booting constant BootRequested (line 17) | BootRequested constant ShuttingDown (line 18) | ShuttingDown constant Done (line 19) | Done constant Inactive (line 22) | Inactive constant Ready (line 23) | Ready constant Restarting (line 26) | Restarting constant Yielding (line 27) | Yielding constant TransitionRequested (line 30) | TransitionRequested constant TransitionInProgress (line 31) | TransitionInProgress constant TransitionComplete (line 32) | TransitionComplete type ThreadState (line 66) | type ThreadState struct method Is (line 87) | func (ts *ThreadState) Is(state State) bool { method CompareAndSwap (line 95) | func (ts *ThreadState) CompareAndSwap(compareTo State, swapTo State) b... method Name (line 107) | func (ts *ThreadState) Name() string { method Get (line 111) | func (ts *ThreadState) Get() State { method Set (line 119) | func (ts *ThreadState) Set(nextState State) { method notifySubscribers (line 126) | func (ts *ThreadState) notifySubscribers(nextState State) { method WaitFor (line 145) | func (ts *ThreadState) WaitFor(states ...State) { method RequestSafeStateChange (line 163) | func (ts *ThreadState) RequestSafeStateChange(nextState State) bool { method MarkAsWaiting (line 188) | func (ts *ThreadState) MarkAsWaiting(isWaiting bool) { method IsInWaitingState (line 197) | func (ts *ThreadState) IsInWaitingState() bool { method WaitTime (line 202) | func (ts *ThreadState) WaitTime() int64 { method SetWaitTime (line 210) | func (ts *ThreadState) SetWaitTime(t time.Time) { type stateSubscriber (line 74) | type stateSubscriber struct function NewThreadState (line 79) | func NewThreadState() *ThreadState { FILE: internal/state/state_test.go function Test2GoroutinesYieldToEachOtherViaStates (line 10) | func Test2GoroutinesYieldToEachOtherViaStates(t *testing.T) { function TestStateShouldHaveCorrectAmountOfSubscribers (line 24) | func TestStateShouldHaveCorrectAmountOfSubscribers(t *testing.T) { function assertNumberOfSubscribers (line 41) | func assertNumberOfSubscribers(t *testing.T, threadState *ThreadState, e... FILE: internal/testcli/main.go function main (line 10) | func main() { FILE: internal/testext/ext_test.go function TestRegisterExtension (line 5) | func TestRegisterExtension(t *testing.T) { FILE: internal/testext/exttest.go function testRegisterExtension (line 25) | func testRegisterExtension(t *testing.T) { FILE: internal/testserver/main.go function main (line 12) | func main() { FILE: internal/watcher/pattern.go constant sep (line 14) | sep = string(filepath.Separator) type pattern (line 16) | type pattern struct method startSession (line 26) | func (p *pattern) startSession() { method parse (line 35) | func (p *pattern) parse() (err error) { method allowReload (line 84) | func (p *pattern) allowReload(event *watcher.Event) bool { method handle (line 95) | func (p *pattern) handle(event *watcher.Event) { method stop (line 108) | func (p *pattern) stop() { method isValidPattern (line 124) | func (p *pattern) isValidPattern(fileName string) bool { method matchPatterns (line 145) | func (p *pattern) matchPatterns(fileName string) bool { function isValidEventType (line 112) | func isValidEventType(effectType watcher.EffectType) bool { function isValidPathType (line 116) | func isValidPathType(event *watcher.Event) bool { function matchCurlyBracePattern (line 187) | func matchCurlyBracePattern(pattern string, fileName string) bool { function expandCurlyBraces (line 198) | func expandCurlyBraces(s string) []string { function matchPattern (line 217) | func matchPattern(pattern string, fileName string) bool { FILE: internal/watcher/pattern_test.go function normalizePath (line 15) | func normalizePath(t *testing.T, path string) string { function newPattern (line 30) | func newPattern(t *testing.T, value string) pattern { function TestDisallowOnEventTypeBiggerThan3 (line 39) | func TestDisallowOnEventTypeBiggerThan3(t *testing.T) { function TestDisallowOnPathTypeBiggerThan2 (line 47) | func TestDisallowOnPathTypeBiggerThan2(t *testing.T) { function TestWatchesCorrectDir (line 55) | func TestWatchesCorrectDir(t *testing.T) { function TestValidRecursiveDirectories (line 84) | func TestValidRecursiveDirectories(t *testing.T) { function TestInvalidRecursiveDirectories (line 112) | func TestInvalidRecursiveDirectories(t *testing.T) { function TestValidNonRecursiveFilePatterns (line 133) | func TestValidNonRecursiveFilePatterns(t *testing.T) { function TestInValidNonRecursiveFilePatterns (line 157) | func TestInValidNonRecursiveFilePatterns(t *testing.T) { function TestValidRecursiveFilePatterns (line 180) | func TestValidRecursiveFilePatterns(t *testing.T) { function TestInvalidRecursiveFilePatterns (line 205) | func TestInvalidRecursiveFilePatterns(t *testing.T) { function TestValidDirectoryPatterns (line 233) | func TestValidDirectoryPatterns(t *testing.T) { function TestInvalidDirectoryPatterns (line 260) | func TestInvalidDirectoryPatterns(t *testing.T) { function TestValidCurlyBracePatterns (line 290) | func TestValidCurlyBracePatterns(t *testing.T) { function TestInvalidCurlyBracePatterns (line 320) | func TestInvalidCurlyBracePatterns(t *testing.T) { function TestAnAssociatedEventTriggersTheWatcher (line 346) | func TestAnAssociatedEventTriggersTheWatcher(t *testing.T) { function relativeDir (line 358) | func relativeDir(t *testing.T, relativePath string) string { function hasDir (line 367) | func hasDir(t *testing.T, p string, dir string) { function assertPatternMatch (line 375) | func assertPatternMatch(t *testing.T, p, fileName string) { function assertPatternNotMatch (line 383) | func assertPatternNotMatch(t *testing.T, p, fileName string) { FILE: internal/watcher/watcher.go constant debounceDuration (line 18) | debounceDuration = 150 * time.Millisecond constant maxFailureCount (line 20) | maxFailureCount = 5 constant failureResetDuration (line 21) | failureResetDuration = 5 * time.Second type PatternGroup (line 40) | type PatternGroup struct type eventHolder (line 45) | type eventHolder struct type globalWatcher (line 50) | type globalWatcher struct method startWatching (line 138) | func (g *globalWatcher) startWatching() error { method parseFilePatterns (line 156) | func (g *globalWatcher) parseFilePatterns() error { method stopWatching (line 166) | func (g *globalWatcher) stopWatching() { method listenForFileEvents (line 173) | func (g *globalWatcher) listenForFileEvents() { method scheduleReload (line 206) | func (g *globalWatcher) scheduleReload(eventsPerGroup map[*PatternGrou... function InitWatcher (line 57) | func InitWatcher(ct context.Context, slogger *slog.Logger, groups []*Pat... function DrainWatcher (line 89) | func DrainWatcher() { method retryWatching (line 106) | func (p *pattern) retryWatching() { FILE: log_test.go function newTestLogger (line 11) | func newTestLogger(t *testing.T) (*slog.Logger, fmt.Stringer) { type syncBuffer (line 20) | type syncBuffer struct method Write (line 25) | func (s *syncBuffer) Write(p []byte) (n int, err error) { method String (line 32) | func (s *syncBuffer) String() string { FILE: mercure-skip.go type mercureContext (line 9) | type mercureContext struct function go_mercure_publish (line 13) | func go_mercure_publish(threadIndex C.uintptr_t, topics *C.struct__zval_... method configureMercure (line 17) | func (w *worker) configureMercure(_ *workerOpt) { FILE: mercure.go type mercureContext (line 16) | type mercureContext struct function go_mercure_publish (line 21) | func go_mercure_publish(threadIndex C.uintptr_t, topics *C.struct__zval_... method configureMercure (line 76) | func (w *worker) configureMercure(o *workerOpt) { function WithMercureHub (line 85) | func WithMercureHub(hub *mercure.Hub) RequestOption { function WithWorkerMercureHub (line 94) | func WithWorkerMercureHub(hub *mercure.Hub) WorkerOption { FILE: mercure_test.go function TestMercurePublish_module (line 17) | func TestMercurePublish_module(t *testing.T) { testMercurePublish(t, &te... function TestMercurePublish_worker (line 18) | func TestMercurePublish_worker(t *testing.T) { function testMercurePublish (line 21) | func testMercurePublish(t *testing.T, opts *testOptions) { FILE: metrics.go constant StopReasonCrash (line 12) | StopReasonCrash = iota constant StopReasonRestart (line 13) | StopReasonRestart constant StopReasonBootFailure (line 14) | StopReasonBootFailure type StopReason (line 17) | type StopReason type Metrics (line 19) | type Metrics interface type nullMetrics (line 45) | type nullMetrics struct method StartWorker (line 47) | func (n nullMetrics) StartWorker(string) { method ReadyWorker (line 50) | func (n nullMetrics) ReadyWorker(string) { method StopWorker (line 53) | func (n nullMetrics) StopWorker(string, StopReason) { method TotalWorkers (line 56) | func (n nullMetrics) TotalWorkers(string, int) { method TotalThreads (line 59) | func (n nullMetrics) TotalThreads(int) { method StartRequest (line 62) | func (n nullMetrics) StartRequest() { method StopRequest (line 65) | func (n nullMetrics) StopRequest() { method StopWorkerRequest (line 68) | func (n nullMetrics) StopWorkerRequest(string, time.Duration) { method StartWorkerRequest (line 71) | func (n nullMetrics) StartWorkerRequest(string) { method Shutdown (line 74) | func (n nullMetrics) Shutdown() { method QueuedWorkerRequest (line 77) | func (n nullMetrics) QueuedWorkerRequest(string) {} method DequeuedWorkerRequest (line 79) | func (n nullMetrics) DequeuedWorkerRequest(string) {} method QueuedRequest (line 81) | func (n nullMetrics) QueuedRequest() {} method DequeuedRequest (line 82) | func (n nullMetrics) DequeuedRequest() {} type PrometheusMetrics (line 84) | type PrometheusMetrics struct method StartWorker (line 100) | func (m *PrometheusMetrics) StartWorker(name string) { method ReadyWorker (line 111) | func (m *PrometheusMetrics) ReadyWorker(name string) { method StopWorker (line 119) | func (m *PrometheusMetrics) StopWorker(name string, reason StopReason) { method TotalWorkers (line 142) | func (m *PrometheusMetrics) TotalWorkers(string, int) { method TotalThreads (line 248) | func (m *PrometheusMetrics) TotalThreads(num int) { method StartRequest (line 252) | func (m *PrometheusMetrics) StartRequest() { method StopRequest (line 256) | func (m *PrometheusMetrics) StopRequest() { method StopWorkerRequest (line 260) | func (m *PrometheusMetrics) StopWorkerRequest(name string, duration ti... method StartWorkerRequest (line 270) | func (m *PrometheusMetrics) StartWorkerRequest(name string) { method QueuedWorkerRequest (line 277) | func (m *PrometheusMetrics) QueuedWorkerRequest(name string) { method DequeuedWorkerRequest (line 284) | func (m *PrometheusMetrics) DequeuedWorkerRequest(name string) { method QueuedRequest (line 291) | func (m *PrometheusMetrics) QueuedRequest() { method DequeuedRequest (line 295) | func (m *PrometheusMetrics) DequeuedRequest() { method Shutdown (line 299) | func (m *PrometheusMetrics) Shutdown() { function NewPrometheusMetrics (line 373) | func NewPrometheusMetrics(registry prometheus.Registerer) *PrometheusMet... FILE: metrics_test.go function createPrometheusMetrics (line 14) | func createPrometheusMetrics() *PrometheusMetrics { function TestPrometheusMetrics_TotalWorkers (line 24) | func TestPrometheusMetrics_TotalWorkers(t *testing.T) { function TestPrometheusMetrics_StopWorkerRequest (line 46) | func TestPrometheusMetrics_StopWorkerRequest(t *testing.T) { function TestPrometheusMetrics_StartWorkerRequest (line 100) | func TestPrometheusMetrics_StartWorkerRequest(t *testing.T) { function TestPrometheusMetrics_TestStopReasonCrash (line 132) | func TestPrometheusMetrics_TestStopReasonCrash(t *testing.T) { FILE: options.go constant defaultMaxConsecutiveFailures (line 11) | defaultMaxConsecutiveFailures = 6 type Option (line 14) | type Option type WorkerOption (line 17) | type WorkerOption type opt (line 22) | type opt struct type workerOpt (line 36) | type workerOpt struct function WithContext (line 55) | func WithContext(ctx context.Context) Option { function WithNumThreads (line 64) | func WithNumThreads(numThreads int) Option { function WithMaxThreads (line 72) | func WithMaxThreads(maxThreads int) Option { function WithMetrics (line 80) | func WithMetrics(m Metrics) Option { function WithWorkers (line 89) | func WithWorkers(name, fileName string, num int, options ...WorkerOption... function WithExtensionWorkers (line 122) | func WithExtensionWorkers(name, fileName string, numThreads int, options... function WithLogger (line 135) | func WithLogger(l *slog.Logger) Option { function WithPhpIni (line 144) | func WithPhpIni(overrides map[string]string) Option { function WithMaxWaitTime (line 152) | func WithMaxWaitTime(maxWaitTime time.Duration) Option { function WithMaxIdleTime (line 161) | func WithMaxIdleTime(maxIdleTime time.Duration) Option { function WithWorkerEnv (line 170) | func WithWorkerEnv(env map[string]string) WorkerOption { function WithWorkerRequestOptions (line 179) | func WithWorkerRequestOptions(options ...RequestOption) WorkerOption { function WithWorkerMaxThreads (line 188) | func WithWorkerMaxThreads(num int) WorkerOption { function WithWorkerWatchMode (line 197) | func WithWorkerWatchMode(watch []string) WorkerOption { function WithWorkerMaxFailures (line 206) | func WithWorkerMaxFailures(maxFailures int) WorkerOption { function WithWorkerOnReady (line 217) | func WithWorkerOnReady(f func(int)) WorkerOption { function WithWorkerOnShutdown (line 225) | func WithWorkerOnShutdown(f func(int)) WorkerOption { function WithWorkerOnServerStartup (line 234) | func WithWorkerOnServerStartup(f func()) WorkerOption { function WithWorkerOnServerShutdown (line 243) | func WithWorkerOnServerShutdown(f func()) WorkerOption { function withExtensionWorkers (line 251) | func withExtensionWorkers(w *extensionWorkers) WorkerOption { FILE: phpmainthread.go type phpMainThread (line 20) | type phpMainThread struct method start (line 103) | func (mainThread *phpMainThread) start() error { method setAutomaticMaxThreads (line 152) | func (mainThread *phpMainThread) setAutomaticMaxThreads() { function initPHPThreads (line 37) | func initPHPThreads(numThreads int, numMaxThreads int, phpIni map[string... function drainPHPThreads (line 76) | func drainPHPThreads() { function getInactivePHPThread (line 121) | func getInactivePHPThread() *phpThread { function go_frankenphp_main_thread_is_ready (line 139) | func go_frankenphp_main_thread_is_ready() { function go_frankenphp_shutdown_main_thread (line 171) | func go_frankenphp_shutdown_main_thread() { function go_get_custom_php_ini (line 176) | func go_get_custom_php_ini(disableTimeouts C.bool) *C.char { FILE: phpmainthread_test.go function setupGlobals (line 20) | func setupGlobals(t *testing.T) { function TestStartAndStopTheMainThreadWithOneInactiveThread (line 28) | func TestStartAndStopTheMainThreadWithOneInactiveThread(t *testing.T) { function TestTransitionRegularThreadToWorkerThread (line 41) | func TestTransitionRegularThreadToWorkerThread(t *testing.T) { function TestTransitionAThreadBetween2DifferentWorkers (line 66) | func TestTransitionAThreadBetween2DifferentWorkers(t *testing.T) { function TestTransitionThreadsWhileDoingRequests (line 94) | func TestTransitionThreadsWhileDoingRequests(t *testing.T) { function TestFinishBootingAWorkerScript (line 163) | func TestFinishBootingAWorkerScript(t *testing.T) { function TestReturnAnErrorIf2WorkersHaveTheSameFileName (line 186) | func TestReturnAnErrorIf2WorkersHaveTheSameFileName(t *testing.T) { function TestReturnAnErrorIf2ModuleWorkersHaveTheSameName (line 199) | func TestReturnAnErrorIf2ModuleWorkersHaveTheSameName(t *testing.T) { function getDummyWorker (line 212) | func getDummyWorker(t *testing.T, fileName string) *worker { function assertRequestBody (line 228) | func assertRequestBody(t *testing.T, url string, expected string) { function allPossibleTransitions (line 242) | func allPossibleTransitions(worker1Path string, worker2Path string) []fu... function TestCorrectThreadCalculation (line 258) | func TestCorrectThreadCalculation(t *testing.T) { function testThreadCalculation (line 304) | func testThreadCalculation(t *testing.T, expectedNumThreads int, expecte... function testThreadCalculationError (line 313) | func testThreadCalculationError(t *testing.T, o *opt) { FILE: phpthread.go type phpThread (line 17) | type phpThread struct method boot (line 45) | func (thread *phpThread) boot() { method shutdown (line 66) | func (thread *phpThread) shutdown() { method setHandler (line 86) | func (thread *phpThread) setHandler(handler threadHandler) { method transitionToNewHandler (line 105) | func (thread *phpThread) transitionToNewHandler() string { method frankenPHPContext (line 113) | func (thread *phpThread) frankenPHPContext() *frankenPHPContext { method context (line 117) | func (thread *phpThread) context() context.Context { method name (line 126) | func (thread *phpThread) name() string { method pinString (line 136) | func (thread *phpThread) pinString(s string) *C.char { method pinCString (line 148) | func (thread *phpThread) pinCString(s string) *C.char { method updateContext (line 152) | func (*phpThread) updateContext(isWorker bool) { type threadHandler (line 28) | type threadHandler interface function newPHPThread (line 36) | func newPHPThread(threadIndex int) *phpThread { function go_frankenphp_before_script_execution (line 157) | func go_frankenphp_before_script_execution(threadIndex C.uintptr_t) *C.c... function go_frankenphp_after_script_execution (line 171) | func go_frankenphp_after_script_execution(threadIndex C.uintptr_t, exitS... function go_frankenphp_on_thread_shutdown (line 183) | func go_frankenphp_on_thread_shutdown(threadIndex C.uintptr_t) { FILE: recorder_test.go type ResponseRecorder (line 24) | type ResponseRecorder struct method Header (line 73) | func (rw *ResponseRecorder) Header() http.Header { method writeHeader (line 89) | func (rw *ResponseRecorder) writeHeader(b []byte, str string) { method Write (line 113) | func (rw *ResponseRecorder) Write(buf []byte) (int, error) { method WriteString (line 123) | func (rw *ResponseRecorder) WriteString(str string) (int, error) { method WriteHeader (line 149) | func (rw *ResponseRecorder) WriteHeader(code int) { method Flush (line 179) | func (rw *ResponseRecorder) Flush() { method Result (line 201) | func (rw *ResponseRecorder) Result() *http.Response { function NewRecorder (line 57) | func NewRecorder() *ResponseRecorder { constant DefaultRemoteAddr (line 67) | DefaultRemoteAddr = "1.2.3.4" function checkWriteHeaderCode (line 131) | func checkWriteHeaderCode(code int) { function parseContentLength (line 265) | func parseContentLength(cl string) int64 { FILE: requestoptions.go type RequestOption (line 17) | type RequestOption function WithRequestDocumentRoot (line 33) | func WithRequestDocumentRoot(documentRoot string, resolveSymlink bool) R... function WithRequestResolvedDocumentRoot (line 64) | func WithRequestResolvedDocumentRoot(documentRoot string) RequestOption { function WithRequestSplitPath (line 85) | func WithRequestSplitPath(splitPath []string) (RequestOption, error) { function PrepareEnv (line 117) | func PrepareEnv(env map[string]string) PreparedEnv { function WithRequestEnv (line 128) | func WithRequestEnv(env map[string]string) RequestOption { function WithRequestPreparedEnv (line 132) | func WithRequestPreparedEnv(env PreparedEnv) RequestOption { function WithOriginalRequest (line 140) | func WithOriginalRequest(r *http.Request) RequestOption { function WithRequestLogger (line 149) | func WithRequestLogger(logger *slog.Logger) RequestOption { function WithWorkerName (line 158) | func WithWorkerName(name string) RequestOption { FILE: requestoptions_test.go function TestWithRequestSplitPath (line 10) | func TestWithRequestSplitPath(t *testing.T) { FILE: scaling.go constant minStallTime (line 15) | minStallTime = 5 * time.Millisecond constant cpuProbeTime (line 17) | cpuProbeTime = 120 * time.Millisecond constant maxCpuUsageForScaling (line 19) | maxCpuUsageForScaling = 0.8 constant downScaleCheckTime (line 21) | downScaleCheckTime = 5 * time.Second constant maxTerminationCount (line 23) | maxTerminationCount = 10 constant defaultMaxIdleTime (line 25) | defaultMaxIdleTime = 5 * time.Second function initAutoScaling (line 37) | func initAutoScaling(mainThread *phpMainThread) { function drainAutoScaling (line 53) | func drainAutoScaling() { function addRegularThread (line 63) | func addRegularThread() (*phpThread, error) { function addWorkerThread (line 73) | func addWorkerThread(worker *worker) (*phpThread, error) { function scaleWorkerThread (line 84) | func scaleWorkerThread(worker *worker) { function scaleRegularThread (line 114) | func scaleRegularThread() { function startUpscalingThreads (line 143) | func startUpscalingThreads(maxScaledThreads int, scale chan *frankenPHPC... function startDownScalingThreads (line 194) | func startDownScalingThreads(done chan struct{}) { function deactivateThreads (line 206) | func deactivateThreads() { FILE: scaling_test.go function TestScaleARegularThreadUpAndDown (line 12) | func TestScaleARegularThreadUpAndDown(t *testing.T) { function TestScaleAWorkerThreadUpAndDown (line 33) | func TestScaleAWorkerThreadUpAndDown(t *testing.T) { function TestMaxIdleTimePreventsEarlyDeactivation (line 60) | func TestMaxIdleTimePreventsEarlyDeactivation(t *testing.T) { function setLongWaitTime (line 86) | func setLongWaitTime(t *testing.T, thread *phpThread) { FILE: testdata/autoloader-require.php function my_autoloader (line 3) | function my_autoloader(string $class) { FILE: testdata/dd.php class Dumper (line 5) | class Dumper method dump (line 9) | public function dump(string $message): void method __destruct (line 15) | public function __destruct() FILE: testdata/integration/basic_function.go function test_uppercase (line 13) | func test_uppercase(s *C.zend_string) unsafe.Pointer { function test_add_numbers (line 20) | func test_add_numbers(a int64, b int64) int64 { function test_multiply (line 25) | func test_multiply(a float64, b float64) float64 { function test_is_enabled (line 30) | func test_is_enabled(flag bool) bool { FILE: testdata/integration/callable.go function my_array_map (line 12) | func my_array_map(arr *C.zend_array, callback *C.zval) unsafe.Pointer { function my_filter (line 28) | func my_filter(arr *C.zend_array, callback *C.zval) unsafe.Pointer { type Processor (line 50) | type Processor struct method Transform (line 53) | func (p *Processor) Transform(input *C.zend_string, callback *C.zval) ... FILE: testdata/integration/class_methods.go type CounterStruct (line 12) | type CounterStruct struct method Increment (line 17) | func (c *CounterStruct) Increment() { method Decrement (line 22) | func (c *CounterStruct) Decrement() { method GetValue (line 27) | func (c *CounterStruct) GetValue() int64 { method SetValue (line 32) | func (c *CounterStruct) SetValue(value int64) { method Reset (line 37) | func (c *CounterStruct) Reset() { method AddValue (line 42) | func (c *CounterStruct) AddValue(amount int64) int64 { method UpdateWithNullable (line 48) | func (c *CounterStruct) UpdateWithNullable(newValue *int64) { type StringHolderStruct (line 55) | type StringHolderStruct struct method SetData (line 60) | func (sh *StringHolderStruct) SetData(data *C.zend_string) { method GetData (line 65) | func (sh *StringHolderStruct) GetData() unsafe.Pointer { method GetLength (line 70) | func (sh *StringHolderStruct) GetLength() int64 { FILE: testdata/integration/constants.go constant TEST_MAX_RETRIES (line 12) | TEST_MAX_RETRIES = 100 constant TEST_API_VERSION (line 15) | TEST_API_VERSION = "2.0.0" constant TEST_ENABLED (line 18) | TEST_ENABLED = true constant TEST_PI (line 21) | TEST_PI = 3.14159 constant STATUS_PENDING (line 25) | STATUS_PENDING = iota constant STATUS_PROCESSING (line 26) | STATUS_PROCESSING constant STATUS_COMPLETED (line 27) | STATUS_COMPLETED constant ONE (line 32) | ONE = 1 constant TWO (line 34) | TWO = 2 type ConfigStruct (line 38) | type ConfigStruct struct method SetMode (line 52) | func (c *ConfigStruct) SetMode(mode int64) { method GetMode (line 57) | func (c *ConfigStruct) GetMode() int64 { constant MODE_DEBUG (line 43) | MODE_DEBUG = 1 constant MODE_PRODUCTION (line 46) | MODE_PRODUCTION = 2 constant DEFAULT_TIMEOUT (line 49) | DEFAULT_TIMEOUT = 30 function test_with_constants (line 62) | func test_with_constants(status int64) unsafe.Pointer { FILE: testdata/integration/invalid_signature.go function invalid_return_type (line 7) | func invalid_return_type(s *C.zend_string) int { FILE: testdata/integration/namespace.go constant NAMESPACE_VERSION (line 14) | NAMESPACE_VERSION = "1.0.0" function greet (line 17) | func greet(name *C.zend_string) unsafe.Pointer { type PersonStruct (line 24) | type PersonStruct struct method SetName (line 30) | func (p *PersonStruct) SetName(name *C.zend_string) { method GetName (line 35) | func (p *PersonStruct) GetName() unsafe.Pointer { method SetAge (line 40) | func (p *PersonStruct) SetAge(age int64) { method GetAge (line 45) | func (p *PersonStruct) GetAge() int64 { constant DEFAULT_AGE (line 50) | DEFAULT_AGE = 18 FILE: testdata/integration/type_mismatch.go function mismatched_param_type (line 7) | func mismatched_param_type(value string) int64 { type BadClassStruct (line 12) | type BadClassStruct struct method WrongReturnType (line 17) | func (bc *BadClassStruct) WrongReturnType() int { FILE: testdata/persistent-object-require.php class MyObject (line 3) | class MyObject method __construct (line 5) | public function __construct(public string $id) {} FILE: testdata/preload.php function preloaded_function (line 5) | function preloaded_function(): string FILE: testdata/session-handler.php class TestSessionHandler (line 6) | class TestSessionHandler implements SessionHandlerInterface method open (line 10) | public function open(string $path, string $name): bool method close (line 15) | public function close(): bool method read (line 20) | public function read(string $id): string|false method write (line 25) | public function write(string $id, string $data): bool method destroy (line 31) | public function destroy(string $id): bool method gc (line 37) | public function gc(int $max_lifetime): int|false FILE: testdata/worker-with-session-handler.php class PreLoopSessionHandler (line 4) | class PreLoopSessionHandler implements SessionHandlerInterface method open (line 8) | public function open(string $path, string $name): bool method close (line 13) | public function close(): bool method read (line 18) | public function read(string $id): string|false method write (line 23) | public function write(string $id, string $data): bool method destroy (line 29) | public function destroy(string $id): bool method gc (line 35) | public function gc(int $max_lifetime): int|false FILE: threadinactive.go type inactiveThread (line 13) | type inactiveThread struct method beforeScriptExecution (line 21) | func (handler *inactiveThread) beforeScriptExecution() string { method afterScriptExecution (line 46) | func (handler *inactiveThread) afterScriptExecution(int) { method frankenPHPContext (line 50) | func (handler *inactiveThread) frankenPHPContext() *frankenPHPContext { method context (line 54) | func (handler *inactiveThread) context() context.Context { method name (line 58) | func (handler *inactiveThread) name() string { function convertToInactiveThread (line 17) | func convertToInactiveThread(thread *phpThread) { FILE: threadregular.go type regularThread (line 15) | type regularThread struct method beforeScriptExecution (line 38) | func (handler *regularThread) beforeScriptExecution() string { method afterScriptExecution (line 62) | func (handler *regularThread) afterScriptExecution(_ int) { method frankenPHPContext (line 66) | func (handler *regularThread) frankenPHPContext() *frankenPHPContext { method context (line 70) | func (handler *regularThread) context() context.Context { method name (line 74) | func (handler *regularThread) name() string { method waitForRequest (line 78) | func (handler *regularThread) waitForRequest() string { method afterRequest (line 99) | func (handler *regularThread) afterRequest() { function convertToRegularThread (line 29) | func convertToRegularThread(thread *phpThread) { function handleRequestWithRegularPHPThreads (line 105) | func handleRequestWithRegularPHPThreads(ch contextHolder) error { function attachRegularThread (line 156) | func attachRegularThread(thread *phpThread) { function detachRegularThread (line 162) | func detachRegularThread(thread *phpThread) { FILE: threadtasks_test.go type taskThread (line 12) | type taskThread struct method beforeScriptExecution (line 44) | func (handler *taskThread) beforeScriptExecution() string { method afterScriptExecution (line 66) | func (handler *taskThread) afterScriptExecution(_ int) { method frankenPHPContext (line 70) | func (handler *taskThread) frankenPHPContext() *frankenPHPContext { method context (line 74) | func (handler *taskThread) context() context.Context { method name (line 78) | func (handler *taskThread) name() string { method waitForTasks (line 82) | func (handler *taskThread) waitForTasks() { method execute (line 95) | func (handler *taskThread) execute(t *task) { type task (line 19) | type task struct method waitForCompletion (line 31) | func (t *task) waitForCompletion() { function newTask (line 24) | func newTask(cb func()) *task { function convertToTaskThread (line 35) | func convertToTaskThread(thread *phpThread) *taskThread { FILE: threadworker.go type workerThread (line 19) | type workerThread struct method beforeScriptExecution (line 41) | func (handler *workerThread) beforeScriptExecution() string { method afterScriptExecution (line 78) | func (handler *workerThread) afterScriptExecution(exitStatus int) { method frankenPHPContext (line 82) | func (handler *workerThread) frankenPHPContext() *frankenPHPContext { method context (line 89) | func (handler *workerThread) context() context.Context { method name (line 97) | func (handler *workerThread) name() string { method waitForWorkerRequest (line 194) | func (handler *workerThread) waitForWorkerRequest() (bool, any) { function convertToWorkerThread (line 31) | func convertToWorkerThread(thread *phpThread, worker *worker) { function setupWorkerScript (line 101) | func setupWorkerScript(handler *workerThread, worker *worker) { function tearDownWorkerScript (line 125) | func tearDownWorkerScript(handler *workerThread, exitStatus int) { function go_frankenphp_worker_handle_request_start (line 256) | func go_frankenphp_worker_handle_request_start(threadIndex C.uintptr_t) ... function go_frankenphp_finish_worker_request (line 281) | func go_frankenphp_finish_worker_request(threadIndex C.uintptr_t, retval... function go_frankenphp_finish_php_request (line 311) | func go_frankenphp_finish_php_request(threadIndex C.uintptr_t) { FILE: types.c function zval (line 3) | zval *get_ht_packed_data(HashTable *ht, uint32_t index) { function Bucket (line 10) | Bucket *get_ht_bucket_data(HashTable *ht, uint32_t index) { function __efree__ (line 19) | void __efree__(void *ptr) { free(ptr); } function __zend_hash_init__ (line 21) | void __zend_hash_init__(HashTable *ht, uint32_t nSize, dtor_func_t pDest... function __hash_update_string__ (line 26) | void __hash_update_string__(zend_array *ht, zend_string *k, zend_string ... function __zval_null__ (line 32) | void __zval_null__(zval *zv) { ZVAL_NULL(zv); } function __zval_bool__ (line 34) | void __zval_bool__(zval *zv, bool val) { ZVAL_BOOL(zv, val); } function __zval_long__ (line 36) | void __zval_long__(zval *zv, zend_long val) { ZVAL_LONG(zv, val); } function __zval_double__ (line 38) | void __zval_double__(zval *zv, double val) { ZVAL_DOUBLE(zv, val); } function __zval_string__ (line 40) | void __zval_string__(zval *zv, zend_string *str) { ZVAL_STR(zv, str); } function __zval_empty_string__ (line 42) | void __zval_empty_string__(zval *zv) { ZVAL_EMPTY_STRING(zv); } function __zval_arr__ (line 44) | void __zval_arr__(zval *zv, zend_array *arr) { ZVAL_ARR(zv, arr); } function zend_array (line 46) | zend_array *__zend_new_array__(uint32_t size) { return zend_new_array(si... function __zend_is_callable__ (line 48) | int __zend_is_callable__(zval *cb) { return zend_is_callable(cb, 0, NULL... function __call_user_function__ (line 50) | int __call_user_function__(zval *function_name, zval *retval, FILE: types.go type toZval (line 31) | type toZval interface function GoString (line 36) | func GoString(s unsafe.Pointer) string { function PHPString (line 49) | func PHPString(s string, persistent bool) unsafe.Pointer { type AssociativeArray (line 64) | type AssociativeArray struct method toZval (line 69) | func (a AssociativeArray[T]) toZval(zval *C.zval) { function GoAssociativeArray (line 74) | func GoAssociativeArray[T any](arr unsafe.Pointer) (AssociativeArray[T],... function GoMap (line 81) | func GoMap[T any](arr unsafe.Pointer) (map[string]T, error) { function goArray (line 87) | func goArray[T any](arr unsafe.Pointer, ordered bool) (map[string]T, []s... function GoPackedArray (line 168) | func GoPackedArray[T any](arr unsafe.Pointer) ([]T, error) { function PHPMap (line 215) | func PHPMap[T any](arr map[string]T) unsafe.Pointer { function PHPAssociativeArray (line 220) | func PHPAssociativeArray[T any](arr AssociativeArray[T]) unsafe.Pointer { function phpArray (line 224) | func phpArray[T any](entries map[string]T, order []string) unsafe.Pointer { function PHPPackedArray (line 248) | func PHPPackedArray[T any](slice []T) unsafe.Pointer { function GoValue (line 265) | func GoValue[T any](zval unsafe.Pointer) (T, error) { function goValue (line 269) | func goValue[T any](zval *C.zval) (res T, err error) { function PHPValue (line 371) | func PHPValue(value any) unsafe.Pointer { function phpValue (line 375) | func phpValue(value any) *C.zval { function createNewArray (line 416) | func createNewArray(size uint32) *C.zend_array { function IsPacked (line 423) | func IsPacked(arr unsafe.Pointer) bool { function htIsPacked (line 432) | func htIsPacked(ht *C.zend_array) bool { function extractZvalValue (line 439) | func extractZvalValue(zval *C.zval, expectedType C.uint8_t) (unsafe.Poin... function zendStringRelease (line 466) | func zendStringRelease(p unsafe.Pointer) { function zendHashDestroy (line 471) | func zendHashDestroy(p unsafe.Pointer) { function CallPHPCallable (line 478) | func CallPHPCallable(cb unsafe.Pointer, params []interface{}) interface{} { FILE: types_test.go function testOnDummyPHPThread (line 13) | func testOnDummyPHPThread(t *testing.T, test func()) { function TestGoString (line 28) | func TestGoString(t *testing.T) { function TestPHPMap (line 39) | func TestPHPMap(t *testing.T) { function TestOrderedPHPAssociativeArray (line 55) | func TestOrderedPHPAssociativeArray(t *testing.T) { function TestPHPPackedArray (line 74) | func TestPHPPackedArray(t *testing.T) { function TestPHPPackedArrayToGoMap (line 87) | func TestPHPPackedArrayToGoMap(t *testing.T) { function TestPHPAssociativeArrayToPacked (line 104) | func TestPHPAssociativeArrayToPacked(t *testing.T) { function TestNestedMixedArray (line 124) | func TestNestedMixedArray(t *testing.T) { FILE: watcher-skip.go type hotReloadOpt (line 7) | type hotReloadOpt struct function initWatchers (line 12) | func initWatchers(o *opt) error { function drainWatchers (line 22) | func drainWatchers() { FILE: watcher.go type hotReloadOpt (line 12) | type hotReloadOpt struct function initWatchers (line 18) | func initWatchers(o *opt) error { function drainWatchers (line 45) | func drainWatchers() { FILE: watcher_test.go constant pollingTime (line 18) | pollingTime = 250 constant minTimesToPollForChanges (line 21) | minTimesToPollForChanges = 3 constant maxTimesToPollForChanges (line 24) | maxTimesToPollForChanges = 60 function TestWorkersShouldReloadOnMatchingPattern (line 26) | func TestWorkersShouldReloadOnMatchingPattern(t *testing.T) { function TestWorkersShouldNotReloadOnExcludingPattern (line 35) | func TestWorkersShouldNotReloadOnExcludingPattern(t *testing.T) { function pollForWorkerReset (line 44) | func pollForWorkerReset(t *testing.T, handler func(http.ResponseWriter, ... function updateTestFile (line 64) | func updateTestFile(t *testing.T, fileName, content string) { FILE: worker.go type worker (line 20) | type worker struct method attachThread (line 224) | func (worker *worker) attachThread(thread *phpThread) { method detachThread (line 230) | func (worker *worker) detachThread(thread *phpThread) { method countThreads (line 241) | func (worker *worker) countThreads() int { method isAtThreadLimit (line 250) | func (worker *worker) isAtThreadLimit() bool { method handleRequest (line 262) | func (worker *worker) handleRequest(ch contextHolder) error { function initWorkers (line 46) | func initWorkers(opt []workerOpt) error { function newWorker (line 101) | func newWorker(o workerOpt) (*worker, error) { function DrainWorkers (line 169) | func DrainWorkers() { function drainWorkerThreads (line 173) | func drainWorkerThreads() []*phpThread { function RestartWorkers (line 211) | func RestartWorkers() { FILE: worker_test.go function TestWorker (line 19) | func TestWorker(t *testing.T) { function TestWorkerDie (line 46) | func TestWorkerDie(t *testing.T) { function TestNonWorkerModeAlwaysWorks (line 54) | func TestNonWorkerModeAlwaysWorks(t *testing.T) { function TestCannotCallHandleRequestInNonWorkerMode (line 67) | func TestCannotCallHandleRequestInNonWorkerMode(t *testing.T) { function TestWorkerEnv (line 80) | func TestWorkerEnv(t *testing.T) { function TestWorkerGetOpt (line 93) | func TestWorkerGetOpt(t *testing.T) { function ExampleServeHTTP_workers (line 113) | func ExampleServeHTTP_workers() { function TestWorkerHasOSEnvironmentVariableInSERVER (line 143) | func TestWorkerHasOSEnvironmentVariableInSERVER(t *testing.T) { function TestKeepRunningOnConnectionAbort (line 157) | func TestKeepRunningOnConnectionAbort(t *testing.T) { FILE: workerextension.go type Workers (line 9) | type Workers interface type extensionWorkers (line 19) | type extensionWorkers struct method SendRequest (line 28) | func (w *extensionWorkers) SendRequest(rw http.ResponseWriter, r *http... method NumThreads (line 42) | func (w *extensionWorkers) NumThreads() int { method SendMessage (line 47) | func (w *extensionWorkers) SendMessage(ctx context.Context, message an... FILE: workerextension_test.go function TestWorkersExtension (line 12) | func TestWorkersExtension(t *testing.T) { function TestWorkerExtensionSendMessage (line 67) | func TestWorkerExtensionSendMessage(t *testing.T) { function TestErrorIf2WorkersHaveSameName (line 80) | func TestErrorIf2WorkersHaveSameName(t *testing.T) {