How to declare the type for local variables using PHPDoc notation?

Reactgular picture Reactgular · Jan 22, 2013 · Viewed 13.5k times · Source

I use Zend Studio to develop in PHP with CakePHP, and one of the problems with CakePHP is that the views all reference undeclared local variables.

So for example, in the controller you would

$this->set('job',new MyJobObject());

Then in the view you could

echo $job->getName();

My problem is that Zend Studio can't perform autocomplete on $job, because it's type is unknown. Now there are PHPDoc tags that allow you to declare the type so that IDE's can perform autocomplete. The @var tag for example can be used in a class to define a property's type.

class MyJobObject
{
    /**
     * @var MyStatusObject
     */
    public $status;
}

Is there a way to do something like this for local variables?

Answer

Levente Pánczél picture Levente Pánczél · Jan 22, 2013

You have to use the one-line form: /** @var $job MyJobObject */

Note that some editors prefer the syntax the other way around: /** @var MyJobObject $job */