From 196df1efa6431dabfef408d31259b7a0c828d76e Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Mon, 19 Sep 2022 12:04:32 +0200 Subject: add patch for PHP 8.2 from https://github.com/laruence/yaf/pull/579 --- yaf-php82.patch | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 yaf-php82.patch (limited to 'yaf-php82.patch') diff --git a/yaf-php82.patch b/yaf-php82.patch new file mode 100644 index 0000000..9bbacae --- /dev/null +++ b/yaf-php82.patch @@ -0,0 +1,85 @@ +From e1557c8f219651550633567054af9c3298524c7e Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Mon, 19 Sep 2022 11:44:33 +0200 +Subject: [PATCH] Fix PHP 8.2 compatibility + +--- + requests/yaf_request_simple.c | 3 +++ + tests/031.phpt | 2 +- + tests/issue231.phpt | 2 +- + views/yaf_view_simple.c | 4 +++- + yaf_application.c | 4 +++- + 5 files changed, 11 insertions(+), 4 deletions(-) + +diff --git a/requests/yaf_request_simple.c b/requests/yaf_request_simple.c +index 6e7ff540..9c63d1c4 100644 +--- a/requests/yaf_request_simple.c ++++ b/requests/yaf_request_simple.c +@@ -140,6 +140,9 @@ YAF_STARTUP_FUNCTION(request_simple){ + zend_class_entry ce; + YAF_INIT_CLASS_ENTRY(ce, "Yaf_Request_Simple", "Yaf\\Request\\Simple", yaf_request_simple_methods); + yaf_request_simple_ce = zend_register_internal_class_ex(&ce, yaf_request_ce); ++#if PHP_VERSION_ID >= 80200 ++ yaf_request_simple_ce->ce_flags |= ZEND_ACC_ALLOW_DYNAMIC_PROPERTIES; ++#endif + + return SUCCESS; + } +diff --git a/tests/031.phpt b/tests/031.phpt +index 19e9f79f..3474aa63 100644 +--- a/tests/031.phpt ++++ b/tests/031.phpt +@@ -36,7 +36,7 @@ Array + ) + array ( + '_default' => +- Yaf_Route_Map::__set_state(array( ++ %saf_Route_Map::__set_state(array( + 'ctl_prefer:protected' => true, + 'delimiter:protected' => '##', + )), +diff --git a/tests/issue231.phpt b/tests/issue231.phpt +index da656f87..44abc592 100644 +--- a/tests/issue231.phpt ++++ b/tests/issue231.phpt +@@ -34,7 +34,7 @@ Yaf_Request_Http Object + ) + + ) +-Yaf_Request_Http::__set_state(array( ++%saf_Request_Http::__set_state(array( + 'method' => 'POST', + 'module' => NULL, + 'controller' => NULL, +diff --git a/views/yaf_view_simple.c b/views/yaf_view_simple.c +index 229339e9..7402fed7 100755 +--- a/views/yaf_view_simple.c ++++ b/views/yaf_view_simple.c +@@ -388,8 +388,10 @@ static int yaf_view_simple_eval(yaf_view_t *view, zend_string *tpl, zval * vars, + ZVAL_STR(&phtml, strpprintf(0, "?>%s", ZSTR_VAL(tpl))); + #if PHP_VERSION_ID < 80000 + op_array = zend_compile_string(&phtml, eval_desc); +-#else ++#elif PHP_VERSION_ID < 80200 + op_array = zend_compile_string(Z_STR(phtml), eval_desc); ++#else ++ op_array = zend_compile_string(Z_STR(phtml), eval_desc, ZEND_COMPILE_POSITION_AFTER_OPEN_TAG); + #endif + zval_dtor(&phtml); + efree(eval_desc); +diff --git a/yaf_application.c b/yaf_application.c +index 44b8e9e8..335b6d44 100644 +--- a/yaf_application.c ++++ b/yaf_application.c +@@ -1053,8 +1053,10 @@ YAF_STARTUP_FUNCTION(application) { + yaf_application_ce->ce_flags |= ZEND_ACC_FINAL; + yaf_application_ce->serialize = zend_class_serialize_deny; + yaf_application_ce->unserialize = zend_class_unserialize_deny; +-#else ++#elif PHP_VERSION_ID < 80200 + yaf_application_ce->ce_flags |= ZEND_ACC_FINAL | ZEND_ACC_NOT_SERIALIZABLE; ++#else ++ yaf_application_ce->ce_flags |= ZEND_ACC_FINAL | ZEND_ACC_NOT_SERIALIZABLE | ZEND_ACC_ALLOW_DYNAMIC_PROPERTIES; + #endif + + memcpy(&yaf_application_obj_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); -- cgit