73
73
* https://www.amazon.fr/Advanced-PHP-Programming-George-Schlossnagle/dp/0672325616
74
74
*/
75
75
76
+ /* upgrading to php7
77
+ * https://wiki.php.net/phpng-upgrading
78
+ * https://www.programmersought.com/article/42361486581/
79
+ */
80
+
76
81
#include "php_embeded.h"
77
82
#include "ext/standard/php_standard.h"
78
83
81
86
#error "Need PHP version >= 5.5 to compile this file"
82
87
#endif
83
88
84
-
85
89
/******************************************************************************
86
90
* *
87
91
* Function: php_embed_eval_string *
88
92
* *
89
93
* Purpose: eval php script string transmit in code. *
90
94
* *
91
95
******************************************************************************/
92
- zval * php_embed_eval_string (char * code , zval * retval_ptr , char * string_name TSRMLS_DC )
96
+ int php_embed_eval_string (char * code , zval * retval , char * string_name TSRMLS_DC )
93
97
{
94
- zval * retval ;
95
- ALLOC_INIT_ZVAL (retval );
96
-
97
98
zend_try {
98
- if (SUCCESS == zend_eval_string (code , retval , string_name TSRMLS_CC ))
99
- return retval ;
99
+ if (SUCCESS == zend_eval_string (code , retval , string_name TSRMLS_CC )) return SUCCESS ;
100
100
} zend_catch {
101
101
102
102
} zend_end_try ();
103
103
104
- return retval ;
104
+ return FAILURE ;
105
105
}
106
106
107
107
@@ -112,10 +112,9 @@ zval *php_embed_eval_string(char *code, zval *retval_ptr, char *string_name TSRM
112
112
* Purpose: execute filename script. *
113
113
* *
114
114
******************************************************************************/
115
- zval * php_embed_execute (char * filename TSRMLS_DC )
115
+ int php_embed_execute (char * filename , zval * retval TSRMLS_DC )
116
116
{
117
117
int ret = 0 ;
118
- zval * retval = NULL ;
119
118
zend_file_handle zfd ;
120
119
121
120
zfd .type = ZEND_HANDLE_FILENAME ;
@@ -125,9 +124,9 @@ zval * php_embed_execute(char *filename TSRMLS_DC)
125
124
zfd .opened_path = NULL ;
126
125
zend_try {
127
126
if (SUCCESS == zend_execute_scripts (ZEND_REQUIRE TSRMLS_CC , & retval , 1 , & zfd ))
128
- if ( retval ) return retval ;
127
+ return SUCCESS ;
129
128
} zend_end_try ();
130
- return retval ;
129
+ return FAILURE ;
131
130
}
132
131
133
132
@@ -151,7 +150,7 @@ static const zend_function_entry my_additional_functions[] = {
151
150
*/
152
151
int php_embed_minit (const char * hardcoded_ini PTSRMLS_DC )
153
152
{
154
- #ifdef ZTS
153
+ #if defined( ZTS ) && PHP_VERSION_ID < 70400
155
154
void * * * tsrm_ls = NULL ;
156
155
#endif
157
156
int ini_entries_len = 0 ;
@@ -168,11 +167,22 @@ int php_embed_minit(const char* hardcoded_ini PTSRMLS_DC)
168
167
#endif
169
168
170
169
#ifdef ZTS
170
+ #if PHP_VERSION_ID >= 70400
171
+ php_tsrm_startup ();
172
+ #else
171
173
tsrm_startup (1 , 1 , 0 , NULL );
172
174
tsrm_ls = ts_resource (0 );
173
175
* ptsrm_ls = tsrm_ls ;
174
176
#endif
177
+ #endif
175
178
179
+ #if PHP_VERSION_ID >= 70000 && defined(ZEND_SIGNALS )
180
+ #if HAVE_ZEND_SIGNAL_STARTUP
181
+ zend_signal_startup ();
182
+ #elif defined(ZTS )
183
+ #error PHP is built with thread safety and broken signals.
184
+ #endif
185
+ #endif
176
186
if (hardcoded_ini != NULL )
177
187
{
178
188
ini_entries_len = strlen (hardcoded_ini );
0 commit comments