function class_virtual_declarations($class_name, $class_methods) { $virtual_methods = ""; foreach ($class_methods as $method_name => $method_definitions) { foreach ($method_definitions as $method_definition) { //Skip constructors, static functions, and non protected virtual functions or pure virtual if ($method_definition["virtual"] && $method_definition["protected"] || $method_definition["pure_virtual"] || "" . strpos($method_name, "On") . "" == "0") { if ($method_name[0] != "_") { $virtual_methods .= $method_definition["return_type"] . " {$method_name}("; $virtual_methods .= function_arguments_string($method_definition); $virtual_methods .= ")"; if ($method_definition["constant"]) { $virtual_methods .= " const"; } $virtual_methods .= ";\n\t"; } } } } return $virtual_methods; }
<?php echo proto_begin($method_name, $class_name); echo $method_definition["return_type"]; ?> <?php echo $class_name; ?> _php::<?php echo $method_name; ?> (<?php echo function_arguments_string($method_definition, false); ?> )<?php echo $method_definition["constant"] ? "const\n" : "\n"; ?> { static zend_function* cached_function = NULL; static bool is_php_user_space_implemented = true; #ifdef USE_WXPHP_DEBUG php_printf("Invoking virtual <?php echo $class_name; ?> ::<?php echo $method_name; ?> \n"); php_printf("===========================================\n"); #endif
/** * For removing global functions marked as deprecated. * * @param array $functions Reference to variable that holds list of functions */ function remove_deprecated_functions(&$functions) { file_put_contents("discarded.log", "Deprecated Functions\n\n", FILE_APPEND); foreach ($functions as $function_name => $function_definitions) { $removed_definitions = 0; foreach ($function_definitions as $function_index => $function_definition) { $index_to_remove = $function_index - $removed_definitions; $removed = false; //Check return type if ($function_definition["deprecated"]) { file_put_contents("discarded.log", $function_definition["return_type"] . " {$function_name}(" . function_arguments_string($function_definition) . ")\n", FILE_APPEND); unset($functions[$function_name][$index_to_remove]); $removed = true; } if ($removed) { $removed_definitions++; //Remove functions with no definitions if (count($functions[$function_name]) <= 0) { unset($functions[$function_name]); } else { $temp_definitions = $functions[$function_name]; $functions[$function_name] = array(); foreach ($temp_definitions as $temp_definition) { $functions[$function_name][] = $temp_definition; } } } } } file_put_contents("discarded.log", "\n\n\n", FILE_APPEND); }