- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在 PHPDoc 中找不到任何关于闭包类型的文档。所以我的问题是如何定义发送到闭包的参数的参数及其返回值?
例子:
我如何描述“回调”将获得一个“MyCustomClass”、一个数字和一个字符串,并返回一个“MyOtherCustomClass”?
/**
* @param MyCustomClass $cls
* @param Closure $callback this isn't really explaining what this is
*
* @return MyOtherCustomClass
*/
function changer($cls, $callback){
return $callback($cls, 2, "a string");
}
changer($aCustomeClass, function($cls, $int, $string){
return new MyOtherCustomClass($cls, $int, $string);
})
或者如果可能的话?
最佳答案
@param callable $callback
确实是用于该部分的语法。您没有将该参数限制为闭包本身……传递给它的任何可调用对象都将在该实现中被接受。 Callable 是合法的“PHP 类型”,因此 phpDocumentor 接受它作为有效类型。
在您的示例代码中,实际上没有有理由假定您的changer()
方法返回MyOtherCustomClass()
,因为那完全取决于您稍后在 changer()
用法中如何编写闭包。充其量,您可以在 changer()
用法中指出 changer()
的这种特殊用法 em> 返回 MyOtherCustomClass
,因为返回特定类型对象的是该用法的实现,而不是 changer()
实现本身。
至于记录传递的可调用对象“需要”接受的参数,我想您必须在 param 标记的描述部分中这样做。没有语法来描述这种情况。
如果我要以这种方式实现某些东西,我会强加一个接口(interface),所有可调用对象都必须显式返回该接口(interface),因此我可以编写 changer()
返回该接口(interface)。当然,这意味着您的 MyOtherCustomClass
必须实现该接口(interface),但在我看来,这仍然是接近“强制”从 changer()< 返回类型的唯一方法
.
关于php - PHPDoc 中的闭包语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16589902/
我想知道如何在 phpdoc 注释中转义 phpdoc 注释。 例如,我将如何写这个: /** * Some documentation... * * * /** * * Example
我想整理一个仅部分使用 PHPDoc 的大型函数包含文件。有些函数没有 PHPDoc,比如 function name($var1,$var2){ // explanation what it doe
我有一个类Abc with 方法(主体不重要): /** * @return SomeBaseClass */ function getAll() { ... } 在Abc的 child 类叫 A
我正在寻找正确的方法来使用项目中的 phpDoc-comments 在 Confluence 4.1.4 中生成开发人员文档。 最佳答案 我一直在研究的一种方法是将我的 HTML 输出(类似于 php
我正在使用 laravel。我需要知道如何使用属性在 php 8 中编写 phpdoc。 /** * Transform the resource into an array. *
我正在使用 laravel。我需要知道如何使用属性在 php 8 中编写 phpdoc。 /** * Transform the resource into an array. *
虽然我按照说明安装了 phpDocumentor,但命令行似乎没有响应 phpdoc 给定错误:未找到命令“phpdoc”,您的意思是: 来自 deb phploc 的命令 'phploc' 来自 d
我想用 phpdoc 解析两个或多个文件夹。解析一个文件夹工作正常。 在文档中,我可以看到: -d|–directory[=”...”] Provide a comma-separated list
有没有办法记录特定函数调用 exit() ? 用例是我们有一个函数负责处理重定向(检查已发送的 header ,设置响应代码等...)然后关键地调用 exit() .不幸的是,PHPStorm 不知道
我已经在我们的服务器上安装了 phpDoc,并进行了设置等。它正在正确生成文档。我们使用的是“响应式”模板,但是无论使用什么模板,都会发生此错误。 在“错误”下,扫描的每个文件似乎都有以下错误: Ty
我试图对 Magento 进行逆向工程,我认为通读每一种方法是一个好的开始(官方文档太浅了)。 Magento 似乎没有预先生成的文档,这是公平的,因为每个配置都彼此不同,并且一般地记录它没有意义。代
如何在返回数组的 PHP 方法的文档中指定键的类型? 例如,我将其用于对象数组 @return MyClass[]。 但是我想注释一个像array( 'string' => array( MyClas
是否有适当的方法来记录使用 define() 定义的常量? @var 真的没有意义。我唯一能想到的就是省略标签,只在PHPdoc注释中写描述。 最佳答案 phpDocumentor 不识别或使用 @c
我应该如何正确使用 PHPdoc 来记录类中的可链接方法,如以下示例所示 - 正确用法是什么? class myClass { /** * @return myClass */
我对可用于 phpDocs 的各种 HTML 模板感到非常满意。我想知道我的 PHP 应用程序是否有其他 PDF 模板,我正在将其作为顶点项目编写,并希望将其作为我论文的补充。默认的 PDF 模板似乎
我有一个类,它包含一个文件,方法如下: 在 class.php 文件中: class A { const CONST1 = 5; /** @var int $a */ var $a = 5; publ
是否有用于记录采用单个配置数组而不是单个参数的函数的语法? 我正在特别考虑 CodeIgniter 风格的库,它们使用与此类似的机制: $value) { $this->$key = $
考虑这段代码: class ParentClass { public static function generate($className = __CLASS__){ if(
我发现另一个工具(doxygen)有这样一个选项(HIDE_UNDOC_MEMBERS)。我想知道 phpDoc 是否有类似的东西,只是用 @ignore 标记标记它们。 最佳答案 用@ignore
在 phpdocs 数据类型中使用命名空间的当前状态是什么。 例如: * @param string|Vendor\SomeClass $parameter 最佳答案 至少,phpDocumentor
我是一名优秀的程序员,十分优秀!