|
|
|
@ -4076,6 +4076,57 @@ ZEND_METHOD(reflection_extension, getClassNames) |
|
|
|
} |
|
|
|
/* }}} */ |
|
|
|
|
|
|
|
/* {{{ proto public array ReflectionExtension::getDependencies() |
|
|
|
Returns an array containing all names of all extensions this extension depends on */ |
|
|
|
ZEND_METHOD(reflection_extension, getDependencies) |
|
|
|
{ |
|
|
|
reflection_object *intern; |
|
|
|
zend_module_entry *module; |
|
|
|
zend_module_dep *dep; |
|
|
|
|
|
|
|
METHOD_NOTSTATIC_NUMPARAMS(reflection_extension_ptr, 0); |
|
|
|
GET_REFLECTION_OBJECT_PTR(module); |
|
|
|
|
|
|
|
array_init(return_value); |
|
|
|
|
|
|
|
dep = module->deps; |
|
|
|
|
|
|
|
if (!dep) |
|
|
|
{ |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
while(dep->name) { |
|
|
|
char *relation; |
|
|
|
char *rel_type; |
|
|
|
|
|
|
|
switch(dep->type) { |
|
|
|
case MODULE_DEP_REQUIRED: |
|
|
|
rel_type = "Required"; |
|
|
|
break; |
|
|
|
case MODULE_DEP_CONFLICTS: |
|
|
|
rel_type = "Conflicts"; |
|
|
|
break; |
|
|
|
case MODULE_DEP_OPTIONAL: |
|
|
|
rel_type = "Optional"; |
|
|
|
break; |
|
|
|
default: |
|
|
|
rel_type = "Error"; /* shouldn't happen */ |
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
int len = spprintf(&relation, 0, "%s%s%s%s%s", |
|
|
|
rel_type, |
|
|
|
dep->rel ? " " : "", |
|
|
|
dep->rel ? dep->rel : "", |
|
|
|
dep->version ? " " : "", |
|
|
|
dep->version ? dep->version : ""); |
|
|
|
add_assoc_stringl(return_value, dep->name, relation, len, 0); |
|
|
|
dep++; |
|
|
|
} |
|
|
|
} |
|
|
|
/* }}} */ |
|
|
|
|
|
|
|
/* {{{ method tables */ |
|
|
|
static zend_function_entry reflection_exception_functions[] = { |
|
|
|
{NULL, NULL, NULL} |
|
|
|
@ -4234,6 +4285,7 @@ static zend_function_entry reflection_extension_functions[] = { |
|
|
|
ZEND_ME(reflection_extension, getINIEntries, NULL, 0) |
|
|
|
ZEND_ME(reflection_extension, getClasses, NULL, 0) |
|
|
|
ZEND_ME(reflection_extension, getClassNames, NULL, 0) |
|
|
|
ZEND_ME(reflection_extension, getDependencies, NULL, 0) |
|
|
|
{NULL, NULL, NULL} |
|
|
|
}; |
|
|
|
/* }}} */ |
|
|
|
|