There are more tools than the ones for editing the code, and for generating the documentation. We can also generate (... drum roll ...) UML diagrams!

Of course, we could use our favorite diagram drawing program (e.g. Dia) and write an UML diagram, but we are lazy, so we use automatic ways of dealing with the problem. Enter Autodia.

Autodia: from code to UML

Running Autodia on MondoRegex.php

... and after some cleaning

dia2code: from UML to code
You can also go the other way, if you have a nice UML diagram, you can generate PHP (or Java, or Perl, etc.) with dia2code.

Another alternative: Umbrello and xmi2code
Umbrello is a specialized tool (unlike Dia), and supports the "standard" XMI format, and the companion project xmi2code can produce code from your UML description.