Try it for yourself by browsing the Xaraya source code and taking a look at the phpxref.cfg file used to generate the output.
Projects using PHPXref:
What's the history of PHPXref?
During 2000 I was working as lead developer on the community site,
Linux.com (see also
the original content)
which involved working with quite
a lot of code (many tens of thousands of lines) of varying quality contributed
by a range of volunteers as well as some paid staff. As code documentation
wasn't entirely consistent, working with/fixing code could often be
difficult as it meant manually tracing function usage across multiple files.
To help speed things up I hacked together a small Perl script to generate an HTML-ized, cross-referenced version of the code that could easily be navigated with a browser. At the same time we formalized the use of comments in the code so that some manner of documentation could be auto-extracted from the source and used alongside the cross-referenced output.
As time has gone on, I've continued to find PHPXref a useful tool for day to day work with other large PHP projects and as a result the original code has had various other hacks added to it to produce the monstrosity you see today (and if you look at the source, you'll see that's the correct choice of word).
Why is PHPXref written in Perl rather than PHP?
A number of reasons..:
Can you add feature XYZ to PHPXref please?
Maybe. If it's something fairly straightforward and likely to benefit
a lot of people using the program (hopefully including me ;-) ) then I'll add it.
Having said that, the PHPXref parser is incredibly simplistic and really has very
little idea about PHP syntax, so certain features are pretty much impossible
to add without writing PHPXref itself.
Thus any feature request that requires PHPXref to have a more intimate knowledge of the scripts it's parsing (such as recognizing which variables in the current scope are global and which are local) is unlikely to happen.
Do you have plans to rewrite PHPXref?
No, no at the moment — PHPXref easily works "well enough"
for my needs and I can live without the few extra features
that better parsing would provide.
If I send you a patch, will you include it?
Maybe, if it follow the same constraints as the rest of the program;
ie. it doesn't require non-standard Perl modules to run, will work
on Windows, will benefit more than a few people, etc.
Contact me before you throw too much time at it ;-)
How can I report a bug or ask for a new feature?
Please make use of the SourceForge
bug, features, support
and patch trackers
I'm stuck - Can you help me make it work?
Feel free to use one of the trackers above, or drop me
an email or you can
often find me on IRC (irc.freenode.net / #phpxref).