- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试弄清楚是否可以使用 PHPdoc 来定义由函数或对象方法返回的对象属性。
假设我有以下类(class):
class SomeClass {
public function staffDetails($id){
$object = new stdClass();
$object->type = "person";
$object->name = "dave";
$object->age = "46";
return $object;
}
}
现在,很容易定义输入参数。
/**
* Get Staff Member Details
*
* @param string $id staff id number
*
* @return object
*/
class SomeClass {
public function staffDetails($id){
$object = new stdClass();
$object->type = "person";
$object->name = "dave";
$object->age = "46";
return $object;
}
}
问题是是否有类似的事情来定义相关方法返回的(stdClass 的)输出对象的属性。这样另一个程序员就不必打开这个类并手动查看方法来查看返回对象返回了什么?
最佳答案
现在是 4 年之后,似乎仍然没有办法像您的问题中最初描述的那样注释 stdClass 对象的属性。
集合已在 PSR-5 中提出,但似乎已被否决:https://github.com/php-fig/fig-standards/blob/211063eed7f4d9b4514b728d7b1810d9b3379dd1/proposed/phpdoc.md#collections
似乎只有两个选项可用:
选项 1:
创建一个代表您的数据对象的普通类并注释属性。
class MyData
{
/**
* This is the name attribute.
* @var string
*/
public $name;
/**
* This is the age attribute.
* @var integer
*/
public $age;
}
选项 2:
按照 Gordon 的建议创建一个通用的 Struct
类型类并将其扩展为您的数据对象,使用 @property用于定义可以使用 __get
和 __set
访问的通用值的注释。
class Struct
{
/**
* Private internal struct attributes
* @var array
*/
private $attributes = [];
/**
* Set a value
* @param string $key
* @param mixed $value
*/
public function __set($key, $value)
{
$this->attributes[$key] = $value;
}
/**
* Get a value
* @param string $key
* @return mixed
*/
public function __get($key)
{
return isset($this->attributes[$key]) ? $this->attributes[$key] : null;
}
/**
* Check if a key is set
* @param string $key
* @return boolean
*/
public function __isset($key)
{
return isset($this->attributes[$key]) ? true : false;
}
}
/**
* @property string $name
* @property integer $age
*/
class MyData extends Struct
{
// Can optionally add data mutators or utility methods here
}
关于PHPdoc - 为 stdClass 对象定义对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12435623/
我想知道如何在 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
我是一名优秀的程序员,十分优秀!