├── .gitignore
├── php
├── param
│ ├── docs
│ │ └── demo.png
│ ├── index.php
│ └── README.md
├── var
│ ├── docs
│ │ ├── demo1.png
│ │ └── demo2.png
│ ├── index.php
│ └── README.md
├── internal
│ ├── docs
│ │ └── demo.jpg
│ ├── outer.php
│ ├── README.md
│ └── index.php
├── method
│ ├── docs
│ │ ├── demo1.jpg
│ │ └── demo2.jpg
│ ├── README.md
│ └── index.php
├── return
│ ├── docs
│ │ └── demo.png
│ ├── README.md
│ └── index.php
├── throws
│ ├── docs
│ │ └── demo.png
│ ├── README.md
│ └── index.php
├── deprecated
│ ├── docs
│ │ └── demo.jpg
│ ├── README.md
│ └── index.php
├── property
│ ├── docs
│ │ ├── demo1.png
│ │ └── demo2.png
│ ├── index.php
│ └── README.md
├── inheritdoc
│ ├── docs
│ │ ├── demo1.jpg
│ │ └── demo2.jpg
│ ├── README.md
│ └── index.php
├── author
│ ├── index.php
│ └── README.md
├── link
│ ├── index.php
│ └── README.md
├── see
│ ├── README.md
│ └── index.php
└── README.md
├── javascript
├── member
│ ├── docs
│ │ └── demo.png
│ ├── demo.js
│ └── README.md
├── param
│ ├── docs
│ │ ├── demo1.png
│ │ └── demo2.png
│ ├── demo3.js
│ ├── demo2.js
│ ├── demo1.js
│ └── README.md
├── see
│ ├── docs
│ │ └── demo1.gif
│ ├── demo.js
│ └── README.md
├── type
│ ├── docs
│ │ ├── demo1.png
│ │ ├── demo2.png
│ │ └── demo3.png
│ ├── demo2.js
│ ├── demo1.js
│ └── README.md
├── abstract
│ ├── docs
│ │ └── demo.png
│ ├── README.md
│ └── demo.js
├── returns
│ ├── docs
│ │ ├── demo1.png
│ │ └── demo2.png
│ ├── demo.js
│ └── README.md
├── constructor
├── deprecated
│ ├── docs
│ │ ├── demo1.png
│ │ └── demo2.png
│ ├── demo1.js
│ ├── demo2.js
│ └── README.md
├── inheritdoc
│ ├── docs
│ │ └── demo.png
│ ├── README.md
│ └── demo.js
├── default
│ ├── README.md
│ └── demo.js
├── throws
│ ├── index.js
│ └── README.md
├── this
│ └── index.js
├── access
│ └── index.js
└── README.md
├── LICENSE
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | \.idea
2 | vendor
3 | composer\.lock
4 | *\.out
5 | *\.swp
6 | test.php
7 | bin
8 | runtime/*
--------------------------------------------------------------------------------
/php/param/docs/demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/php/param/docs/demo.png
--------------------------------------------------------------------------------
/php/var/docs/demo1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/php/var/docs/demo1.png
--------------------------------------------------------------------------------
/php/var/docs/demo2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/php/var/docs/demo2.png
--------------------------------------------------------------------------------
/php/internal/docs/demo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/php/internal/docs/demo.jpg
--------------------------------------------------------------------------------
/php/method/docs/demo1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/php/method/docs/demo1.jpg
--------------------------------------------------------------------------------
/php/method/docs/demo2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/php/method/docs/demo2.jpg
--------------------------------------------------------------------------------
/php/return/docs/demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/php/return/docs/demo.png
--------------------------------------------------------------------------------
/php/throws/docs/demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/php/throws/docs/demo.png
--------------------------------------------------------------------------------
/php/deprecated/docs/demo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/php/deprecated/docs/demo.jpg
--------------------------------------------------------------------------------
/php/property/docs/demo1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/php/property/docs/demo1.png
--------------------------------------------------------------------------------
/php/property/docs/demo2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/php/property/docs/demo2.png
--------------------------------------------------------------------------------
/javascript/member/docs/demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/javascript/member/docs/demo.png
--------------------------------------------------------------------------------
/javascript/param/docs/demo1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/javascript/param/docs/demo1.png
--------------------------------------------------------------------------------
/javascript/param/docs/demo2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/javascript/param/docs/demo2.png
--------------------------------------------------------------------------------
/javascript/see/docs/demo1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/javascript/see/docs/demo1.gif
--------------------------------------------------------------------------------
/javascript/type/docs/demo1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/javascript/type/docs/demo1.png
--------------------------------------------------------------------------------
/javascript/type/docs/demo2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/javascript/type/docs/demo2.png
--------------------------------------------------------------------------------
/javascript/type/docs/demo3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/javascript/type/docs/demo3.png
--------------------------------------------------------------------------------
/php/inheritdoc/docs/demo1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/php/inheritdoc/docs/demo1.jpg
--------------------------------------------------------------------------------
/php/inheritdoc/docs/demo2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/php/inheritdoc/docs/demo2.jpg
--------------------------------------------------------------------------------
/javascript/abstract/docs/demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/javascript/abstract/docs/demo.png
--------------------------------------------------------------------------------
/javascript/returns/docs/demo1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/javascript/returns/docs/demo1.png
--------------------------------------------------------------------------------
/javascript/returns/docs/demo2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/javascript/returns/docs/demo2.png
--------------------------------------------------------------------------------
/javascript/constructor/docs/demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/javascript/constructor/docs/demo.png
--------------------------------------------------------------------------------
/javascript/deprecated/docs/demo1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/javascript/deprecated/docs/demo1.png
--------------------------------------------------------------------------------
/javascript/deprecated/docs/demo2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/javascript/deprecated/docs/demo2.png
--------------------------------------------------------------------------------
/javascript/inheritdoc/docs/demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yinggaozhen/doc-demo/HEAD/javascript/inheritdoc/docs/demo.png
--------------------------------------------------------------------------------
/javascript/default/README.md:
--------------------------------------------------------------------------------
1 | # @default
2 |
3 | `@default` : 默认值, 值只能为string|number|boolean|null。
4 |
5 | ## 语法
6 |
7 | > `@default [
类型可查看README.md
6 | * 7 | * 此标签建议在PHPStorm中打开此演示文档,可以看到具体的标签效果 8 | * 9 | * @property int $intVar 数字 10 | * @property string $stringVar 字符串 11 | * @property mixed $any 任意类型返回值 12 | */ 13 | class TagProperty 14 | { 15 | public function __get($name) 16 | { 17 | } 18 | 19 | public function __set($name, $value) 20 | { 21 | } 22 | } 23 | 24 | $tag = new TagProperty(); 25 | 26 | // PASS. 27 | $tag->any = 2; 28 | // WARN.hello未在@property中定义 29 | $tag->hello = 2; 30 | -------------------------------------------------------------------------------- /php/method/README.md: -------------------------------------------------------------------------------- 1 | @method 2 | ======= 3 | 4 | `@method` : 此标签可告诉类有哪些魔术方法可以调用. 5 | 6 | **此标签推荐使用PhpStorm进行阅读,可以能直观体现标签的作用** 7 | 8 | 语法 9 | ======= 10 | 11 | > `@method [modifier] [return type] [name]([[type] [parameter]<, …>]) [完整类型可查看README.md
6 | * 7 | * 此标签建议在PHPStorm中打开此演示文档,可以看到具体的标签效果 8 | */ 9 | class TagParam 10 | { 11 | /** 12 | * @param string[] $collection 集合 13 | * @param string $piece 碎片 14 | * @return string[] 15 | */ 16 | public static function join($collection, $piece) 17 | { 18 | $collection[] = $piece; 19 | 20 | return $collection; 21 | } 22 | } 23 | 24 | // PASS. 25 | TagParam::join([], 'hello'); 26 | // WARN. @param规定第一入参类型为string[],但是实际入参类型为number 27 | TagParam::join(123, 'hello'); 28 | -------------------------------------------------------------------------------- /javascript/type/demo1.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @classdesc 为成员变量定义类型 3 | * 4 | * 此标签推荐使用PhpStorm/WebStorm进行阅读,可以能直观体现标签的作用 5 | * 6 | * @constructor 7 | */ 8 | function TagType() { 9 | /** 10 | * @type {*} 11 | */ 12 | this.anyProperty = null; 13 | 14 | /** 15 | * @type {string} 16 | */ 17 | this.stringProperty = ''; 18 | 19 | /** 20 | * @type {Array.完整类型可查看README.md
6 | * 7 | * 此标签建议在PHPStorm中打开此演示文档,可以看到具体的标签效果 8 | */ 9 | class TagVar 10 | { 11 | /** 12 | * <1>.第一种使用方法,只定义类型,通常用于类成员变量中 13 | * 14 | * @var array|null 标签数组 15 | */ 16 | public $tags = null; 17 | } 18 | 19 | $tag = new TagVar(); 20 | // WARN.因为@var定义了这个参数类型是string,所以字符串函数strlen产生警告 21 | strlen($tag->tags); 22 | 23 | // =========================== 第二种定义方法 ================================ 24 | 25 | /** 26 | * <2>.第二种使用方法,给指定变量指定类型 27 | * 28 | * @var array $tags 标签数组 29 | */ 30 | // WARN.因为@var定义$tags的参数类型是array,所以字符串函数strlen产生警告 31 | strlen($tags); 32 | -------------------------------------------------------------------------------- /php/return/README.md: -------------------------------------------------------------------------------- 1 | @return 2 | ======= 3 | 4 | `@return` : 用于在函数/方法返回值信息. 5 | 6 | **此标签推荐使用PhpStorm进行阅读,可以能直观体现标签的作用** 7 | 8 | 语法 9 | ======= 10 | 11 | > `@return [Type] [完整类型可查看README.md
6 | * 7 | * 此标签建议在PHPStorm中打开此演示文档,可以看到具体的标签效果 8 | */ 9 | class TagReturn 10 | { 11 | private static $config = []; 12 | 13 | /** 14 | * <1.> 返回主机名称 15 | * 16 | * @return string 主机名称 17 | */ 18 | public static function getHost() 19 | { 20 | return $_SERVER['host'] ?: '127.0.0.1'; 21 | } 22 | 23 | /** 24 | * <2.> 返回配置信息,如果name为null,返回所有配置 25 | * 26 | * @param string|null $name 配置名称 27 | * @return string|array 主机名称(返回值多类型) 28 | */ 29 | public static function getConfig($name = null) 30 | { 31 | return isset(static::$config[$name]) ? static::$config[$name] : static::$config; 32 | } 33 | } 34 | 35 | $host = TagReturn::getHost(); 36 | // PASS. 37 | strlen($host); 38 | // WARN. TagReturn::getHost返回值定义为string,所以$host用array方法会产生一个警告 39 | array_pop($host); 40 | -------------------------------------------------------------------------------- /php/property/README.md: -------------------------------------------------------------------------------- 1 | @property 2 | ======= 3 | 4 | `@property` : 当类中包含魔术方法__get/__set时,可以通过此标签定义名称. 5 | 6 | **此标签推荐使用PhpStorm进行阅读,可以能直观体现标签的作用** 7 | 8 | 语法 9 | ======= 10 | 11 | > `@property [Type] [name] [| 类型名 | 34 |语法示例 | 35 |描述 | 36 |
|---|---|---|
| Symbol name | 39 |{boolean} {myNamespace.MyClass} |
40 | 指定符号的名称。 如果标识符已经被文档化,JSDoc将创建一个链接到该标识符的文档 | 41 |
| Multiple types | 44 |{number|boolean} 表示数字或布尔 |
45 | 这意味着值可能是几种类型中的一种,并用|分隔类型的完整列表。 | 46 |
| Arrays | 49 |{Array.string} or string[] 表示字符串数组 |
50 | - | 51 |
| Objects | 54 |{name: string, age : number} or Object | 55 |- | 56 |
| Nullable type | 59 |一个数字或null {?number} | 60 |指明类型为指定的类型,或者为null。 | 61 |
| Non-nullable type | 64 |一个数字,但是绝对不会是null {!number} | 65 |指明类型为指定的类型,但是绝对不会是null。 | 66 |
| Variable number of that type | 69 |此函数接受可变数量的数值参数。 @param {...number} num |
70 | 表示该函数接受可变数量的参数,并指定一个类型的参数 | 71 |
| Optional parameter | 74 |一个可选参数 @param {number} [foo] @param {number} [foo=1] 可选参数,默认值=1 |
75 | 指示参数是可选的。当使用JSDoc的语法表示可选参数时,你还可以指明参数的默认值。 | 76 |
| 类型名 | 35 |语法示例 | 36 |描述 | 37 |
|---|---|---|
| Symbol name | 40 |{boolean} {myNamespace.MyClass} |
41 | 指定符号的名称。 如果标识符已经被文档化,JSDoc将创建一个链接到该标识符的文档 | 42 |
| Multiple types | 45 |{number|boolean} 表示数字或布尔 |
46 | 这意味着值可能是几种类型中的一种,并用|分隔类型的完整列表。 | 47 |
| Arrays | 50 |{Array.string} or string[] 表示字符串数组 |
51 | - | 52 |
| Objects | 55 |{name: string, age : number} or Object | 56 |- | 57 |
| Nullable type | 60 |一个数字或null {?number} | 61 |指明类型为指定的类型,或者为null。 | 62 |
| Non-nullable type | 65 |一个数字,但是绝对不会是null {!number} | 66 |指明类型为指定的类型,但是绝对不会是null。 | 67 |
| Variable number of that type | 70 |此函数接受可变数量的数值参数。 @param {...number} num |
71 | 表示该函数接受可变数量的参数,并指定一个类型的参数 | 72 |
| Optional parameter | 75 |一个可选参数 @param {number} [foo] @param {number} [foo=1] 可选参数,默认值=1 |
76 | 指示参数是可选的。当使用JSDoc的语法表示可选参数时,你还可以指明参数的默认值。 | 77 |
| 类型名 | 38 |语法示例 | 39 |描述 | 40 |
|---|---|---|
| Symbol name | 43 |{boolean} {myNamespace.MyClass} |
44 | 指定符号的名称。 如果标识符已经被文档化,JSDoc将创建一个链接到该标识符的文档 | 45 |
| Multiple types | 48 |{number|boolean} 表示数字或布尔 |
49 | 这意味着值可能是几种类型中的一种,并用|分隔类型的完整列表。 | 50 |
| Arrays | 53 |{Array.string} or string[] 表示字符串数组 |
54 | - | 55 |
| Objects | 58 |{name: string, age : number} or Object | 59 |- | 60 |
| Nullable type | 63 |一个数字或null {?number} | 64 |指明类型为指定的类型,或者为null。 | 65 |
| Non-nullable type | 68 |一个数字,但是绝对不会是null {!number} | 69 |指明类型为指定的类型,但是绝对不会是null。 | 70 |
| Variable number of that type | 73 |此函数接受可变数量的数值参数。 @param {...number} num |
74 | 表示该函数接受可变数量的参数,并指定一个类型的参数 | 75 |
| Optional parameter | 78 |一个可选参数 @param {number} [foo] @param {number} [foo=1] 可选参数,默认值=1 |
79 | 指示参数是可选的。当使用JSDoc的语法表示可选参数时,你还可以指明参数的默认值。 | 80 |
| 类型名 | 36 |语法示例 | 37 |描述 | 38 |
|---|---|---|
| Symbol name | 41 |{boolean} {myNamespace.MyClass} |
42 | 指定符号的名称。 如果标识符已经被文档化,JSDoc将创建一个链接到该标识符的文档 | 43 |
| Multiple types | 46 |{number|boolean} 表示数字或布尔 |
47 | 这意味着值可能是几种类型中的一种,并用|分隔类型的完整列表。 | 48 |
| Arrays | 51 |{Array.string} or string[] 表示字符串数组 |
52 | - | 53 |
| Objects | 56 |{name: string, age : number} or Object | 57 |- | 58 |
| Nullable type | 61 |一个数字或null {?number} | 62 |指明类型为指定的类型,或者为null。 | 63 |
| Non-nullable type | 66 |一个数字,但是绝对不会是null {!number} | 67 |指明类型为指定的类型,但是绝对不会是null。 | 68 |
| Variable number of that type | 71 |此函数接受可变数量的数值参数。 @param {...number} num |
72 | 表示该函数接受可变数量的参数,并指定一个类型的参数 | 73 |
| Optional parameter | 76 |一个可选参数 @param {number} [foo] @param {number} [foo=1] 可选参数,默认值=1 |
77 | 指示参数是可选的。当使用JSDoc的语法表示可选参数时,你还可以指明参数的默认值。 | 78 |