可能重复:
是否有记录GET/POST参数的标准?
试图找出以有意义的方式通过phpdoc记录请求参数的最佳方法.具体来说,我有一些Zend Framework控制器动作通过GET/POST接收参数,但不是功能参数.这有意义吗?
/**
* Display a pagination/grid list of rows.
*
* @param string $_GET['order'] What field to sort on
* @param string $_GET['dir'] Direction to sort; either ASC|DESC
*
* @return void
*/
public function listAction()
{
$order = $this->_request->order;
...
Run Code Online (Sandbox Code Playgroud)
如果我为此方法生成了文档,则不会指示"order"和"dir"可以通过url字符串传递给此方法.这样做会更有意义吗?
@param string $order
Run Code Online (Sandbox Code Playgroud)
我应该使用@var吗?
欢迎思考.
我有这样的多重继承:我可以在PHP中使用多于一个类扩展一个类吗?(我们不要讨论这种方法)并希望我的IDE了解继承的类方法和属性.有没有办法用PhpDoc做到这一点?
作为一个Emacs用户,我唯一羡慕像PDT这样的"现代"编辑器是PDT理解类型,甚至是PHPDoc"类型提示",例如
/**
* @param DateTime $date
* @param string $name
* @return DOMDocument
*/
Run Code Online (Sandbox Code Playgroud)
目前我使用类型提示尽可能使PHP解释器在我获取参数类型错误时提醒我,但这仅在参数是对象时才有效.更重要的是,没有办法确保函数的返回值是特定类型.
这可能是一个很长的镜头,但有没有任何插件或其他方式使PHP解释器以与PDT相同的方式识别PHPDoc注释?理想情况下,如果我返回错误类型的值,或者如果我传递一个我已将参数声明为int的字符串,我希望得到致命错误.
我应该如何正确使用PHPdoc来记录类中的可链接方法,如下例所示 - 正确的用法是什么?
class myClass {
/**
* @return myClass
*/
function one()
{
return $this;
}
/**
* @return self
*/
function two()
{
return $this;
}
/**
* @return $this
*/
function three()
{
return $this;
}
}
Run Code Online (Sandbox Code Playgroud) 当在PhpStorm中使用自动php docblock生成时,我最终得到了@static一个静态方法的注释:
/**
* Reset the singleton instance, for the tests only
* @static
*/
public static function reset() {
self::$singletonInstance = null;
}
Run Code Online (Sandbox Code Playgroud)
如果可以从代码中推断出这些标签有什么用处吗?我正在试图决定是否应该离开它或将其删除(并且在任何地方都这样做以使其保持一致).
有时在我的代码中,我喜欢注释掉一段代码以供临时使用/参考等,例如:
/*
blah
*/
Run Code Online (Sandbox Code Playgroud)
但是如果我想在该块中插入一行,当我点击回车时,它会自动在下一行放一个*就像我在做一个DocBlock一样,这是一个小麻烦.这发生在每个输入键上:
/*
blah<enter pressed here>
*
*/
Run Code Online (Sandbox Code Playgroud)
现在我认为这种"自动格式化"只应在开场评论使用格式/**(两颗星)的情况下进行.多行注释在DocBlocks之前很长一段时间,所以我不确定为什么它强迫这些"老派"标准直接/**/评论有花哨的不需要的额外DocBlock*!
有没有办法:
干杯
我有一个Abc方法类(正文并不重要):
/**
* @return SomeBaseClass
*/
function getAll() { ... }
Run Code Online (Sandbox Code Playgroud)
在Abc被调用的子类中,AbcChild我想重新定义返回类的类型,以便在Netbeans中正确地看到它.我可以不重新定义方法吗?
/**
* @return SomeClass
*/
function getAll() { return parent::getAll(); }
Run Code Online (Sandbox Code Playgroud) 我想问一些关于我下一个问题的帮助:我正在研究一个Symfony2项目.我们通过composer安装了Symfony2.现在我想生成phpDocumentor使用的phpDocument.
A执行了以下步骤:
将以下属性添加到Symfony2/compose.json文件:
"require-dev": {
"phpdocumentor/phpdocumentor": "2.*@dev"
},
Run Code Online (Sandbox Code Playgroud)运行composer命令
sudo php composer.phar update
Run Code Online (Sandbox Code Playgroud)结果很成功!已安装的GraphViz版本为:1.0.2
当我尝试从源代码生成phpDoc时,我得到了一条消息:
无法找到dotGraphViz包的命令.GraphViz是否已正确安装并存在于您的路径中?
(文件生成正确......)
我试图找到关于这个问题的解决方案,但我不能.
有人可以帮我解决这个问题吗?
环境是:Ubuntu发布12.04
我有一个类A和一些返回bool值的方法.我为该方法制作了phpdoc.
我创建了另一个类B,它扩展了A类并覆盖了方法.新方法返回字符串.(我知道在一般情况下更改返回类型不是一个好主意,但在我的情况下,这是一个好方法.)
我想为新方法制作phpdoc.我可以使用{@inheritDoc},但它需要旧方法的完整phpdoc.我想从旧的phpdoc一般方法描述和参数规范,但更改返回值的描述.
我怎么能这样做?
我正在与由Doctrine管理的实体合作开发Symfony项目.以下是我的实体的代码:
class User {
/**
* @ORM\OneToMany(targetEntity="Appointment", mappedBy="user")
*/
private $appointments;
/**
* Get appointments
*
* @return \Doctrine\Common\Collections\ArrayCollection
*/
public function getAppointments()
{
return $this->appointments;
}
/**
* Get appointments at a specified date
*
* @param \DateTime $date
* @return \Doctrine\Common\Collections\Collection|static
*/
public function getAppointmentsAtDate(\DateTime $date) {
$allAppointments = $this->getAppointments();
$criteria = Criteria::create()->where(/* some clever filtering logic goes here */);
return $allAppointments ->matching($criteria);
}
}
Run Code Online (Sandbox Code Playgroud)
getAppointments是由Doctrine自动生成的.该getAppointmentsAtDate方法由我自己实施.该方法的PHPDoc标头由PhpStorm自动生成.
我无法理解的是static我的自定义方法的返回类型中的关键字.
根据我对PHPDoc类型的 理解,static表示此方法返回调用它的类的实例,在本例中为User …
phpdoc ×10
php ×8
phpstorm ×2
symfony ×2
coding-style ×1
comments ×1
composer-php ×1
docblocks ×1
doctrine-orm ×1
graphviz ×1
inheritance ×1
javadoc ×1
netbeans ×1
oop ×1