PHPDoc way to describe the magic getter/setters [SOLVED]

[email protected] ("Daevid Vincent")
Newsgroups php.general
Message-ID <[email protected]>
I use a base.class that most classes extend from. That class uses the lovely
Magic Methods for overloading __get() and __set()
http://php.net/manual/en/language.oop5.magic.php
 
However (in Zend Studio for example) when I try to auto-assist a property
$foo I don't see that it has a get() or set() method.
 
I'd like to see something like $this->get_foo() or $this->set_foo()  and
also if possible have them show up in the Outline tab window.
 
Then I randomly stumbled upon this PHPDoc  @ method tag and my whole world
is brighter today than it has been for the past, oh let's say DECADE!
http://manual.phpdoc.org/HTMLSmartyConverter/PHP/phpDocumentor/tutorial_tags
.method.pkg.html
or @property too.
http://manual.phpdoc.org/HTMLSmartyConverter/PHP/phpDocumentor/tutorial_tags
.property.pkg.html
 
*giddy!* 
(now I just have to go back through all my code and update the class
documentation headers everywhere)
 
<?php
/**
* This is an example of how to use PHPDoc to describe the magic __get() and
__set()
* so that Zend Studio / Eclipse / Other IDEs can utilize the methods that
don't technically exist.
*
* @method    void set_name() set_name(string $name) magic setter for $name
property
* @method    string get_name() get_name() magic getter for $name property
*
* @link
http://manual.phpdoc.org/HTMLSmartyConverter/PHP/phpDocumentor/tutorial_tags
.method.pkg.html
* @link
http://manual.phpdoc.org/HTMLSmartyConverter/PHP/phpDocumentor/tutorial_tags
.property.pkg.html
*/
class foo
{
       /**
       * @var string $name the description of $name goes here
       */
       protected $name;
 
       public function __construct($id = NULL)
       {
       }
}
 
$myobj = new foo();
 
#### Put your cursor after the -> and hit CTRL+SPACE.                ####
#### Notice how you have "magic" get_name() and set_name($name)      ####
#### appearing and also in the Eclipse "Outline" pane                ####
 
$myobj->
 
####                 You're welcome.                                 ####
?>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.