PHP_UML is a reverse-engineering tool, and a documentation tool.
It parses PHP files and directories, and generates an XMI file corresponding to the parsed code.
XMI is an OMG standard for exchanging metadata information via XML, and is commonly used as an interchange format for UML models. Many UML softwares support importing and exporting of XMI files.
Like PhpDocumentor, PHP_UML can parse the following PHP elements: classes, interfaces, properties, and functions. It can also retrieve information from the inline comments, via the docblocks: @package, @var, @param
@param and @var learn PHP_UML about the expected types of a parameter or a property.
@package learns PHP_UML about the nesting package of an element.
So the more documented your PHP code is, the more precise your XMI file will be.
At the current time, the UML/XMI standard exist in two different versions, 1.4 and 2.1. PHP_UML can generate XMI in both versions. Be warned, though, that some UML tools might not render well this or that aspect of your XMI file. For example, the link between an UML artifact (i.e. a source file) and the logical elements defined in the artifact is only available in version 2 of UML.
Example 58-1. Parsing a single file test.php, and generating its XMI file:
Note that, since UML is a strong object-oriented standard, PHP_UML ignores all "procedural" elements, like global functions, or global constants.