phpDocumentor development update, 4/1/03
| From: | Greg Beaver | Date: | Tue, 01 Apr 2003 04:53:53 +0000 |
| Subject: | phpDocumentor development update, 4/1/03 | ||
| Groups: | php.pear.dev | ||
| Request: | Send a blank email to pear-dev+get-14741@lists.php.net to get a copy of this message | ||
Hello there,
Before leaving last week, I received some correspondence from the PHP development team at Microsoft, which was a pleasant surprise. They offered to take up the slack while I was out of town, and I must say, I am very impressed with their work. I'm happy to say that in addition to fixing a few bugs, they've developed an algorithm that allows phpDocumentor to "figure out" how code works directly from the source without any comments! In other words, this source code:
class yourclass
{
function foo($axe)
{
if (is_a($axe, 'myclass')) {
$test = $axe->findMethod($_GET['input']);
return $axe->$test($this);
} else {
return false;
}
}
}
will parse out as if it were written as:
class yourclass
{
/**
* Wrapper for {@link myclass} object methods
*
* Relies on form variable "input" to get the
* results of a method of object $axe
* @return mixed|false result of method or false if
* $axe is not a myclass
* @param myclass|mixed if this is a myclass object,
* uses this to find the method needed
*/
function foo($axe)
{
if (is_a($axe, 'myclass')) {
$test = $axe->findMethod($_GET['input']);
return $axe->$test($this);
} else {
return false;
}
}
}
The change relies on a simple algorithm coupling the tokenizer and bcompiler extensions. The speed is a bit slower, but this will no longer be an issue when users upgrade their hardware and memory to meet the new minimum requirements (3.06 GHz PIV w/2 Gig of RAM, WinXP only). It even finds logic errors, and will prevent you from doing any work until they are fixed, which has been a much-needed feature in phpDocumentor. It also enforces PEAR coding and naming standards rigorously. In fact, they suggested changing the name of the project to phpDominatrix to fit the new focus. After discussing the project further, we decided that phpDominatrix should pick the best output format for you, and so will gently remind you that you shouldn't want to have something as useless as HTML output if your project wouldn't benefit from that silliness, by using a cute little animated ActiveX paper clip in the web interface (the command-line interface has been removed).
I hope these changes will make life much easier. I haven't actually had a chance to see the code, they sent me source that had been encoded using the Zend Encoder, but it sure looks cool! Anonymous cvs has been moved to the microsoft server. I couldn't find the exact address to the new CVS location, but was told by MS tech support that if I re-installed Windows, it would pop up on a web search.
Regards,
Greg
--
phpDominatrix
http://www.phpdoc.org