Browse Source

- Add ReflectionExtension::getDependencies() to retrieve all dependencies

of an extension as associative array "ModuleNeme" > "Relation"
migration/RELEASE_1_0_0
Marcus Boerger 21 years ago
parent
commit
0184485812
  1. 52
      ext/reflection/php_reflection.c

52
ext/reflection/php_reflection.c

@ -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}
};
/* }}} */

Loading…
Cancel
Save