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. #### ?>