Rea*_*lar 22 php cakephp eclipse-pdt zend-studio cakephp-2.2
我使用Zend Studio在PHP中使用CakePHP进行开发,而CakePHP的一个问题是视图都引用了未声明的局部变量.
例如,在控制器中你会
$ this-> set('job',new MyJobObject());
然后在视图中你可以
echo $ job-> getName();
我的问题是Zend Studio无法执行自动完成$job,因为它的类型未知.现在有PHPDoc标签允许您声明类型,以便IDE可以执行自动完成.@var例如,标签可以在类中用于定义属性的类型.
class MyJobObject
{
/**
* @var MyStatusObject
*/
public $status;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法为局部变量做这样的事情?
Lev*_*zél 31
你必须使用单行形式: /** @var $job MyJobObject */
请注意,某些编辑器更喜欢使用相反的语法: /** @var MyJobObject $job */
Dan*_* W. 17
两个答案都是错误的*,严格来说:
/** @var MyJobObject $job */
Run Code Online (Sandbox Code Playgroud)
是正确的 - 类型始终是第一个参数,然后您输入描述或指定变量本身。
资源:
https://scrutinizer-ci.com/docs/tools/php/php-analyzer/guides/annotating_code https://docs.phpdoc.org/latest/references/phpdoc/types.html
否则,每个现代 PHP IDE 都能够识别几乎任何类型的注释语法:
// @var
/* @var */
/** @var */
/* @var
*/
# @var
Run Code Online (Sandbox Code Playgroud)
最常见、最易读和最广泛接受的形式是
/** @var <type> [variable [comment]] */
/**
* @var <type> [variable [comment]]
*/
Run Code Online (Sandbox Code Playgroud)
PSR-5(建议)https://github.com/php-fig/fig-standards/blob/master/proposed/phpdoc.md
PSR-19(草案)https://github.com/php-fig/fig-standards/blob/master/proposed/phpdoc-tags.md
*) 在 2013 年,语法可能有所不同。
| 归档时间: |
|
| 查看次数: |
11122 次 |
| 最近记录: |