我无法找到可以使用PHPDoc提示的类型的概述.我知道数组或字符串,但是还有bool吗?喜欢:
/**
* @param bool loadLazy
* @return array Array with objects
*/
public function getObjects($loadLazy=false) {
Run Code Online (Sandbox Code Playgroud) 谁能告诉我在phpDoc语法中定义php命名空间的正确方法是什么?或者,@ package在phpDoc中是否已弃用,因为命名空间或多或少定义了一个包?
如果没有,是否有一种通用的方法来记录文档所在的命名空间?
我正在研究基于phpdoc生成文档的不同解决方案,Doxygen看起来很棒,但到目前为止搜索受到严重限制.
例如,我搜索字符串"session",它给了我2个结果:
同一个类也有一个名为getSession的方法,我似乎无法找到它.不仅如此,类本身在名称中还有"Session",但它不在搜索结果中.
有没有办法Doxygen实际上可以搜索这些方法/类,还是设计为功能有限?
我之前从未关心过记录我的代码,但最近我开始研究一个开源项目并且需要出现.显然'选择的武器'是PHPDoc,但......
我真的找不到PHPDoc标准的单一规范.有一个维基百科条目列出了一些属性,并且有一个phpDocumentor项目,据说有一个更广泛的字典,但令我困惑的是PHPDoc的权威指南在哪里?有没有一个单一的标准,或者由所有那些众多的phpDocumentor仿冒品扩展PHPDoc"标准"(如果有的话)到他们认为合适的任何东西.
如果我们假设phpDocumentor是创建和维护PHPDoc标准的地方,事情看起来非常严峻,因为该项目的网站已经死了近4年了.更令我困惑的是,大约一个月前,phpDocumentor的Pear网站上突然出现了1.4.4版本.
我知道周围有很多聪明且知识渊博的伙伴,所以我想知道.与PHPDoc有什么关系.是否有一个权威机构创建标准?它有多可靠?有没有未来或我们正在处理一个僵尸,所有希望都失去了......
谢谢,伊沃
如何创建一个PHP DocBlock,声明一个表示类返回的@return.目前这很简单
/**
* This returns an object of the "User" class
* @return User
*/
public function getUser() { return $this->user; }
Run Code Online (Sandbox Code Playgroud)
我使用它通过我的IDE获取智能感知这些返回值.(在我看来是Netbeans)
但是我有一个类,它返回一个基于变量名的类.(例如:)
/**
* This returns an object of the $param
* @param String $className
* @return ???
*/
public function getSomeObject($className) { return new $className(); }
Run Code Online (Sandbox Code Playgroud)
我正在尝试为此创建intellisense,但我不确定这是否真的可行.
比如我打电话的时候
$someClass = new MyClass();
$var = $someClass->getSomeObject('Address');
Run Code Online (Sandbox Code Playgroud)
我希望我的IDE向我显示变量$ var的intellisense(它将包含一个Object of Address)
可能重复:
PHPDoc类型提示对象数组?
我使用PhpDocumentor2生成文档.我搜索了这个主题,但我找不到具体的规则.例如,我有一个名为AddressField的类,我想将$ addressFields指定为AddressField对象的数组.
/**
* @var AddressField[]
*/
private $addressFields;
Run Code Online (Sandbox Code Playgroud) 可以使用什么(如果有)标记来指定PHPDocumentor的创建和/或上次修改日期?例如:
@created 2013-01-01
@author John Doe
@updated 2013-01-06
Run Code Online (Sandbox Code Playgroud)
这主要用于文件级DocBlock.
我在一家员工都使用PHPStorm和Netbeans 8的公司工作.在我们最近开始为我们的代码添加更多类型提示之前,我们一直都很好.
在PHPStorm中正确使用类型提示的方法就像这样
/** @var MyAwesomeClass $theObject */
$theObject = $orm->getMyAwesomeObject();
Run Code Online (Sandbox Code Playgroud)
这是有道理的,因为记录函数的正确方法是
/**
* @param MyAwesomeClass $awesomeObjectArgument
* @param boolean $booleanArgumentsAreSilly
*/
Run Code Online (Sandbox Code Playgroud)
但是netbeans就是这样的
/** @var $theObject \Full\Freeking\Namespace\With\Leading\Backslash\MyAwesomeClass */
Run Code Online (Sandbox Code Playgroud)
这是一个问题,因为参数的顺序(对@var表示法)是相反的,而Netbeans使用PHPStorm不支持的前导斜杠.
有没有人知道如何配置这些IDE中的任何一个使用相同的标准,因为目前只有一半的代码具有工作自动完成功能.对我来说,Netbeans中的实现似乎是不必要的,并且与PHPDocs标准(基于@param表示法)相冲突.
更新:我错了,PHPStorm实际上与Netbeans表示法兼容,但不是相反.意思是我的问题没有完全解决.我仍然需要找到一种方法来配置两个IDE来生成在两者中都有效的文档.
我还没有找到如何从PhpStorm IDE生成phpDoc的html格式。
或者我应该只使用控制台来完成此任务,例如:
$ phpdoc -d|-f <PATH> -t <PATH> [parameters]
Run Code Online (Sandbox Code Playgroud) 尽管我按照说明安装了phpDocumentor,但命令行似乎没有响应 phpdoc
给定错误: 未找到命令“ phpdoc”,您的意思是:来自deb phploc的命令“ phploc”来自deb phpdox的命令“ phpdox”尝试:sudo apt install
我按照以下步骤安装了phpdoc,它似乎可以正常工作
pear channel-discover pear.phpdoc.org
pear install phpdoc/phpDocumentor
安装完成后,我尝试运行phpdoc -h,但它不起作用。
使用:7.2.16
作业系统:Ubuntu 18.04.2 LTS
感谢您提供的任何帮助。
phpdoc ×10
php ×8
netbeans ×2
phpstorm ×2
doxygen ×1
php-7.2 ×1
search ×1
type-hinting ×1
ubuntu-18.04 ×1