frankenphp.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #ifndef _FRANKENPPHP_H
  2. #define _FRANKENPPHP_H
  3. #include <Zend/zend_types.h>
  4. #include <stdbool.h>
  5. #include <stdint.h>
  6. #include "ring_buffer.h"
  7. #ifndef FRANKENPHP_VERSION
  8. #define FRANKENPHP_VERSION dev
  9. #endif
  10. #define STRINGIFY(x) #x
  11. #define TOSTRING(x) STRINGIFY(x)
  12. typedef struct go_string {
  13. size_t len;
  14. char *data;
  15. } go_string;
  16. typedef struct php_variable {
  17. const char *var;
  18. size_t data_len;
  19. char *data;
  20. } php_variable;
  21. typedef struct frankenphp_version {
  22. unsigned char major_version;
  23. unsigned char minor_version;
  24. unsigned char release_version;
  25. const char *extra_version;
  26. const char *version;
  27. unsigned long version_id;
  28. } frankenphp_version;
  29. frankenphp_version frankenphp_get_version();
  30. typedef struct frankenphp_config {
  31. frankenphp_version version;
  32. bool zts;
  33. bool zend_signals;
  34. bool zend_max_execution_timers;
  35. } frankenphp_config;
  36. frankenphp_config frankenphp_get_config();
  37. int frankenphp_init(int num_threads);
  38. int frankenphp_update_server_context(
  39. bool create, uintptr_t current_request, uintptr_t main_request,
  40. const char *request_method, char *query_string, zend_long content_length,
  41. char *path_translated, char *request_uri, const char *content_type,
  42. char *auth_user, char *auth_password, int proto_num,
  43. RingBuffer *output_buffer, RingBuffer *output_header);
  44. int frankenphp_request_startup();
  45. int frankenphp_execute_script(char *file_name);
  46. void frankenphp_register_bulk_variables(go_string known_variables[27],
  47. php_variable *dynamic_variables,
  48. size_t size, zval *track_vars_array);
  49. int frankenphp_execute_script_cli(char *script, int argc, char **argv);
  50. #endif