·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

PHPDOC

507 2
发表于 2021-5-19 19:20:19 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
PHPDoc 是一个 PHP 版的 Javadoc。它是一种注释 PHP 代码的正式标准。它支持通过类似 phpDocumentor 这样的外部文档生成器生成 API 文档,也可以帮助一些例如 Zend Studio, NetBeans, ActiveState Komodo Edit and IDE 和 Aptana Studio 之类的 集成开发环境 理解变量类型和弱类型语言中的其他歧义并提供改进的代码完成,类型提示和除错功能。
PHPDoc 可同时支持 面向对象 的和 面向过程的 代码。
以上摘自维基百科
简单来说 PHPDOC 可以用来自动生成 API 文档。主流的 IDE 都会识别它,并在你 coding 中给予你相应的智能提示。使用 PHPDOC 有以下好处
    让你的代码更加规 zhuang 范 bi,更易于理解
    让你的 IDE 更懂你的代码,更加智能的提示和自动完成
    如需 API 手册,可使用 phpDocumentor 来自动生成

还等什么?快跟我一起来学习又好用又有逼格的 phpDoc 吧!
有关 phpDoc 的完整文档位于 phpDocumentor 官网。以下内容由我个人理解、提炼而来,而且我也还在学习中,如有失误还请各位多多指教
  1. @api表示这是一个提供给第三方使用的 API 接口@author作者格式 @author [名称] [<邮箱>]例如 @author mokeyjay <i@mokeyjay.com>@copyright版权声明。例如很多网站底部都有格式 @copyright [描述]例如 @copyright 1949-2016 China@deprecated不建议使用的、已过期的、将被删除的格式 @deprecated [<版本号>] [<描述>]例如 @deprecated 1.0.0 新版本将不再包含此函数如果它是被其他方法所取代了,建议添加 @see 标记@example例子、示例、用例。也可表示方法返回值的例子格式 @example [位置] [<起始行号> [<行数>] ] [<描述>]例如 @example demo.php 10 3 使用示例@filesource没看懂,如果你们看懂了请告诉我。传送门@global全局变量格式 @global [类型][名称] @global [类型][描述]我怀疑这里是源文档打错了,大概应该是格式 @global [类型][名称][描述]类型 @global string name 用户名@ignore忽略格式 @ignore [<描述>]例如你在 if 和 else 的语句块中定义分别同一个变量但值不同时,可以通过此标记让 phpDocumentor 忽略其中一个,以免生成重复的文档。例如if ($ostest) {     /**      * This define will either be 'Unix' or 'Windows'      */     define("OS","Unix"); } else {     /**      * @ignore      */     define("OS","Windows"); }@internal仅限内部使用的格式 @internal [描述]例如 @internal 仅限内部测试使用@license协议,很常见的啦格式 @license [<url>] [名称]例如 @license GPL@link链接,可用于辅助说明、引用文档等格式 @link [url] [<描述>]例如 @link http://g.cn 不懂滚去问谷歌,别来烦我@method方法。这是用在类注释里的标记。特别适合一些动态加载的类,IDE 无法自动提示出来,这时就可以通过写 @method 标记来告诉 IDE 我这类里有哪些方法格式 @method [返回值类型] [名称]([[类型] [参数]<, ...>]) [<描述>]例如 @method string google(string $question) 向谷歌提问,返回答案内容@package包。但 php 没有包,所以就用来表示命名空间例如 @package yii\base\db@param参数,用于函数和方法注释里的标记格式 @param [Type] [name] [<description>]例如 @param string title 文章标题@property类属性,与 @method 类似,可以告诉 IDE 我这类里有哪些属性格式 @property [Type] [name] [<description>]例如 @property int id 用户id@property-read只读的属性。例如__get 魔术方法能够取到的属性格式 @property-read [Type] [name] [<description>]例如 @property-read int id 用户id@property-write只可写的属性。例如__set 魔术方法能够设置的属性格式 @property-write [Type] [name] [<description>]例如 @property-write string name 用户名@return返回值格式 @return [类型] [<描述>]]例如 @return array 结果数组@see参考,类似 @link,可与 @deprecated 联动格式 @see [url或完整方法名] [<描述>]例如 @see \yii\base\db::tableName() 旧方法table_name已弃用,请使用此方法替代@since从 xx 版本开始。例如从 1.0 之后添加了 xx 功能、删除了 xx 参数等格式 @since [1.0.0] [<描述>]例如 @since 1.0.2 添加了$b参数@source没看懂,如果你们看懂了请告诉我。传送门@throws可能会抛出的错误类型格式 @throws [类型] [<描述>]例如 @throws LifeException 没钱了,好想死啊@todo待办。提示自己或他人还需要做些什么格式 @todo [描述]例如 @todo 这个类还没做异常处理@uses使用格式 @uses [完整方法名] [<描述>]例如 @uses \yii\base\db::$count 使用此属性计数@var变量格式 @var [类型] [变量名] [<描述>]例如 @var int id 用户id@version版本号格式 @version [<载体>] [<描述>]例如 @version 1.0.1 2016-07-03更新或者 @version GIT:1f3197d01 来自GIT分支1f3197d01
复制代码
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-20 11:15:29 | 查看全部
PHPDoc 是一种用于注释 PHP 代码的标准,它可以帮助开发者更好地理解代码结构、提高代码的可读性,并且为 IDE 提供智能提示和自动完成功能。以下是一些常见的 PHPDoc 标签及其用法,结合 Discuz! 开发场景,我们可以更好地理解如何在实际项目中使用这些标签。

### 1. **@api**
   - **用途**:标记一个方法或类为 API 接口,表示该接口是提供给第三方使用的。
   - **示例**:
   
  1. /**
  2.       * @api
  3.       * 获取用户信息
  4.       * @param int $userId 用户ID
  5.       * @return array 用户信息
  6.       */
  7.      function getUserInfo($userId) {
  8.          // 代码逻辑
  9.      }
复制代码


### 2. **@author**
   - **用途**:标记代码的作者。
   - **示例**:
   
  1. /**
  2.       * @author mokeyjay
  3.       * 这是一个示例类
  4.       */
  5.      class ExampleClass {
  6.          // 类内容
  7.      }
复制代码


### 3. **@copyright**
   - **用途**:标记版权信息。
   - **示例**:
   
  1. /**
  2.       * @copyright 1949-2016 China
  3.       * 这是一个示例类
  4.       */
  5.      class ExampleClass {
  6.          // 类内容
  7.      }
复制代码


### 4. **@deprecated**
   - **用途**:标记一个方法或类为已弃用,建议使用其他替代方案。
   - **示例**:
   
  1. /**
  2.       * @deprecated 1.0.0 请使用新方法 newMethod()
  3.       * 这是一个已弃用的方法
  4.       */
  5.      function oldMethod() {
  6.          // 代码逻辑
  7.      }
复制代码


### 5. **@example**
   - **用途**:提供代码示例或用例。
   - **示例**:
   
  1. /**
  2.       * @example demo.php 10 3 使用示例
  3.       * 这是一个示例方法
  4.       */
  5.      function exampleMethod() {
  6.          // 代码逻辑
  7.      }
复制代码


### 6. **@global**
   - **用途**:标记全局变量。
   - **示例**:
   
  1. /**
  2.       * @global string $username 用户名
  3.       */
  4.      global $username;
复制代码


### 7. **@ignore**
   - **用途**:忽略某个代码块,不生成文档。
   - **示例**:
   
  1. if ($ostest) {
  2.          /**
  3.           * This define will either be 'Unix' or 'Windows'
  4.           */
  5.          define("OS", "Unix");
  6.      } else {
  7.          /**
  8.           * @ignore
  9.           */
  10.          define("OS", "Windows");
  11.      }
复制代码


### 8. **@internal**
   - **用途**:标记为内部使用,不对外公开。
   - **示例**:
   
  1. /**
  2.       * @internal 仅限内部测试使用
  3.       * 这是一个内部方法
  4.       */
  5.      function internalMethod() {
  6.          // 代码逻辑
  7.      }
复制代码


### 9. **@license**
   - **用途**:标记代码的许可证信息。
   - **示例**:
   
  1. /**
  2.       * @license GPL
  3.       * 这是一个示例类
  4.       */
  5.      class ExampleClass {
  6.          // 类内容
  7.      }
复制代码


### 10. **@link**
   - **用途**:提供相关链接或参考文档。
   - **示例**:
   
  1. /**
  2.       * @link http://g.cn 不懂滚去问谷歌,别来烦我
  3.       * 这是一个示例方法
  4.       */
  5.      function exampleMethod() {
  6.          // 代码逻辑
  7.      }
复制代码


### 11. **@method**
   - **用途**:标记类中的方法,特别是动态加载的方法。
   - **示例**:
   
  1. /**
  2.       * @method string google(string $question) 向谷歌提问,返回答案内容
  3.       * 这是一个示例类
  4.       */
  5.      class ExampleClass {
  6.          // 类内容
  7.      }
复制代码


### 12. **@package**
   - **用途**:标记命名空间或包。
   - **示例**:
   
  1. /**
  2.       * @package yii\base\db
  3.       * 这是一个示例类
  4.       */
  5.      class ExampleClass {
  6.          // 类内容
  7.      }
复制代码


### 13. **@param**
   - **用途**:标记函数或方法的参数。
   - **示例**:
   
  1. /**
  2.       * @param string $title 文章标题
  3.       * 这是一个示例方法
  4.       */
  5.      function exampleMethod($title) {
  6.          // 代码逻辑
  7.      }
复制代码


### 14. **@property**
   - **用途**:标记类的属性。
   - **示例**:
   
  1. /**
  2.       * @property int $id 用户ID
  3.       * 这是一个示例类
  4.       */
  5.      class ExampleClass {
  6.          // 类内容
  7.      }
复制代码


### 15. **@return**
   - **用途**:标记函数或方法的返回值。
   - **示例**:
   
  1. /**
  2.       * @return array 结果数组
  3.       * 这是一个示例方法
  4.       */
  5.      function exampleMethod() {
  6.          // 代码逻辑
  7.      }
复制代码


### 16. **@see**
   - **用途**:提供参考链接或相关方法。
   - **示例**:
   
  1. /**
  2.       * @see \yii\base\db::tableName() 旧方法table_name已弃用,请使用此方法替代
  3.       * 这是一个示例方法
  4.       */
  5.      function exampleMethod() {
  6.          // 代码逻辑
  7.      }
复制代码


### 17. **@since**
   - **用途**:标记从某个版本开始引入的功能或更改。
   - **示例**:
   
  1. /**
  2.       * @since 1.0.2 添加了$b参数
  3.       * 这是一个示例方法
  4.       */
  5.      function exampleMethod($a, $b) {
  6.          // 代码逻辑
  7.      }
复制代码


### 18. **@throws**
   - **用途**:标记可能抛出的异常。
   - **示例**:
   
  1. /**
  2.       * @throws LifeException 没钱了,好想死啊
  3.       * 这是一个示例方法
  4.       */
  5.      function exampleMethod() {
  6.          // 代码逻辑
  7.      }
复制代码


### 19. **@todo**
   - **用途**:标记待办事项。
   - **示例**:
   
  1. /**
  2.       * @todo 这个类还没做异常处理
  3.       * 这是一个示例类
  4.       */
  5.      class ExampleClass {
  6.          // 类内容
  7.      }
复制代码


### 20. **@uses**
   - **用途**:标记使用的类或方法。
   - **示例**:
   
  1. /**
  2.       * @uses \yii\base\db::$count 使用此属性计数
  3.       * 这是一个示例方法
  4.       */
  5.      function exampleMethod() {
  6.          // 代码逻辑
  7.      }
复制代码


### 21. **@var**
   - **用途**:标记变量的类型。
   - **示例**:
   
  1. /**
  2.       * @var int $id 用户ID
  3.       */
  4.      $id = 1;
复制代码


### 22. **@version**
   - **用途**:标记版本号。
   - **示例**:
   
  1. /**
  2.       * @version 1.0.1 2016-07-03更新
  3.       * 这是一个示例类
  4.       */
  5.      class ExampleClass {
  6.          // 类内容
  7.      }
复制代码


### 总结
PHPDoc 是一种非常强大的工具,能够帮助开发者更好地组织和理解代码。在 Discuz! 开发中,合理使用 PHPDoc 可以提高代码的可维护性和可读性,同时为 IDE 提供更好的支持。如果你在开发过程中遇到任何问题,欢迎随时在 DZ插件网(https://www.dz-x.net/)寻求帮助。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-21 05:37:24 | 查看全部
PHPDoc 是一种用于注释 PHP 代码的标准,它可以帮助开发者更好地理解代码的结构和功能,同时也能让集成开发环境(IDE)提供更智能的代码提示和自动完成功能。以下是一些常见的 PHPDoc 标签及其用法:

1. **@api**: 表示这是一个提供给第三方使用的 API 接口。
  
  1. /**
  2.     * @api
  3.     */
  4.    function publicApi() {
  5.        // API 实现
  6.    }
复制代码


2. **@author**: 用于指定代码的作者。
  
  1. /**
  2.     * @author mokeyjay
  3.     */
  4.    function someFunction() {
  5.        // 函数实现
  6.    }
复制代码


3. **@copyright**: 用于指定版权信息。
  
  1. /**
  2.     * @copyright 1949-2016 China
  3.     */
  4.    function someFunction() {
  5.        // 函数实现
  6.    }
复制代码


4. **@deprecated**: 表示该方法或函数已过时,不建议使用。
  
  1. /**
  2.     * @deprecated 1.0.0 新版本将不再包含此函数
  3.     * @see newFunction()
  4.     */
  5.    function oldFunction() {
  6.        // 旧函数实现
  7.    }
复制代码


5. **@example**: 提供代码示例。
  
  1. /**
  2.     * @example demo.php 10 3 使用示例
  3.     */
  4.    function exampleFunction() {
  5.        // 函数实现
  6.    }
复制代码


6. **@global**: 用于描述全局变量。
  
  1. /**
  2.     * @global string $name 用户名
  3.     */
  4.    global $name;
复制代码


7. **@ignore**: 用于忽略某些代码块,使其不被文档生成器处理。
  
  1. if ($ostest) {
  2.        /**
  3.         * This define will either be 'Unix' or 'Windows'
  4.         */
  5.        define("OS", "Unix");
  6.    } else {
  7.        /**
  8.         * @ignore
  9.         */
  10.        define("OS", "Windows");
  11.    }
复制代码


8. **@internal**: 表示该代码仅供内部使用。
  
  1. /**
  2.     * @internal 仅限内部测试使用
  3.     */
  4.    function internalFunction() {
  5.        // 内部函数实现
  6.    }
复制代码


9. **@license**: 用于指定代码的许可证。
  
  1. /**
  2.     * @license GPL
  3.     */
  4.    function licensedFunction() {
  5.        // 函数实现
  6.    }
复制代码


10. **@link**: 提供相关链接。
   
  1. /**
  2.      * @link http://g.cn 不懂滚去问谷歌,别来烦我
  3.      */
  4.     function linkedFunction() {
  5.         // 函数实现
  6.     }
复制代码


11. **@method**: 用于描述类中的方法。
   
  1. /**
  2.      * @method string google(string $question) 向谷歌提问,返回答案内容
  3.      */
  4.     class MyClass {
  5.         // 类实现
  6.     }
复制代码


12. **@package**: 用于指定命名空间。
   
  1. /**
  2.      * @package yii\base\db
  3.      */
  4.     class MyClass {
  5.         // 类实现
  6.     }
复制代码


13. **@param**: 用于描述函数或方法的参数。
   
  1. /**
  2.      * @param string $title 文章标题
  3.      */
  4.     function someFunction($title) {
  5.         // 函数实现
  6.     }
复制代码


14. **@property**: 用于描述类中的属性。
   
  1. /**
  2.      * @property int $id 用户id
  3.      */
  4.     class MyClass {
  5.         // 类实现
  6.     }
复制代码


15. **@return**: 用于描述函数或方法的返回值。
   
  1. /**
  2.      * @return array 结果数组
  3.      */
  4.     function someFunction() {
  5.         return [];
  6.     }
复制代码


16. **@see**: 用于提供参考链接或参考方法。
   
  1. /**
  2.      * @see \yii\base\db::tableName() 旧方法table_name已弃用,请使用此方法替代
  3.      */
  4.     function someFunction() {
  5.         // 函数实现
  6.     }
复制代码


17. **@since**: 用于指定从哪个版本开始引入的功能。
   
  1. /**
  2.      * @since 1.0.2 添加了$b参数
  3.      */
  4.     function someFunction($a, $b) {
  5.         // 函数实现
  6.     }
复制代码


18. **@throws**: 用于描述可能抛出的异常。
   
  1. /**
  2.      * @throws LifeException 没钱了,好想死啊
  3.      */
  4.     function someFunction() {
  5.         // 函数实现
  6.     }
复制代码


19. **@todo**: 用于标记待办事项。
   
  1. /**
  2.      * @todo 这个类还没做异常处理
  3.      */
  4.     class MyClass {
  5.         // 类实现
  6.     }
复制代码


20. **@uses**: 用于描述代码中使用的其他类或方法。
   
  1. /**
  2.      * @uses \yii\base\db::$count 使用此属性计数
  3.      */
  4.     function someFunction() {
  5.         // 函数实现
  6.     }
复制代码


21. **@var**: 用于描述变量。
   
  1. /**
  2.      * @var int $id 用户id
  3.      */
  4.     $id = 1;
复制代码


22. **@version**: 用于指定代码的版本号。
   
  1. /**
  2.      * @version 1.0.1 2016-07-03更新
  3.      */
  4.     function someFunction() {
  5.         // 函数实现
  6.     }
复制代码


通过使用这些 PHPDoc 标签,你可以让你的代码更加规范和易于理解,同时也能让 IDE 更好地理解你的代码,提供更智能的提示和自动完成功能。如果你需要生成 API 文档,可以使用 phpDocumentor 这样的工具来自动生成。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.17.155.11,GMT+8, 2025-4-19 20:01 , Processed in 0.292955 second(s), 90 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表