首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 註解標籤完整規範:PHPDoc 標準標籤與團隊協作指南

     編輯:PHP 相關知識

前言

統一的文件註解規範能大幅提升程式碼可讀性、維護性,並支援 IDE 智能提示、自動產生 API 文件。本文整理 PHPDoc 標準標籤、行內標籤、註解格式規範與團隊落地建議。

區塊標籤完整對照表

標籤適用範圍說明範例
@accessclass, function, var, define, module存取層級@access public
@author所有作者資訊@author John Doe <john@example.com>
@copyrightclass, function, var, define, module, use版權聲明@copyright 2024 Company Inc.
@deprecatedclass, function, var, define, module, constant, global, include標記棄用,建議替代方案@deprecated 2.0 使用 newMethod()
@example所有範例檔案路徑(高亮顯示)@example /path/to/example.php
@constdefine常量定義@const int MAX_SIZE
@finalclass, function, var禁止繼承/覆寫@final
@filesource所有顯示當前檔案完整原始碼@filesource
@globalfunction函式內引用的全域變數@global array $config
@ignore所有忽略此元素不產生文件@ignore
@license所有授權連結@license MIT https://opensource.org/licenses/MIT
@link所有相關連結(可連結到其他文件元素)@link https://example.com @link ClassName::method()
@name所有別名@name RealClassName
@packagepage: define, function, include; class: class, var, method邏輯分組@package App\Modules\User
@abstractclass抽象類別@abstract
@paramfunction, method參數說明:型別 名稱 說明@param string $name 使用者名稱
@returnfunction, method回傳值:型別 說明@return bool 成功為 true
@static所有靜態成員@static
@varproperty, variable變數型別@var string|null
@version所有版本號@version 1.2.3
@todo所有待辦事項@todo 優化查詢效能
@throwsfunction, method拋出的例外類別與條件@throws InvalidArgumentException ID 不存在

行內標籤

標籤用法範例
{@link}同 @link,用於段落內參考 {@link https://example.com 官網}
{@source}顯示函式/方法原始碼片段{@source}

註解格式規範(強制)

/**
 * 簡短描述(單行)
 *
 * 詳細描述(可多行,支援 Markdown)
 *
 * @param string $param1 參數說明
 * @param int    $param2 參數說明
 * @return bool  回傳說明
 * @throws Exception 條件說明
 */
function example(string $param1, int $param2): bool { ... }

關鍵規則

  1. 以 /** 開頭,*/ 結尾,每行以 * 開頭對齊。
  2. 第一行為簡短摘要,空行後為詳細說明。
  3. @param、@return、@throws 函式/方法必寫。
  4. 變數/屬性必標 @var 型別。
  5. 引用全域變數必標 @global。
  6. 重複元素用 @ignore 隱藏多餘項。
  7. 相關元素用 @link 互連,便於文件導航。
  8. 描述簡潔明瞭,優先用片語而非完整句子。
  9. 全域常數、靜態變數必標對應標籤。

實戰範例:完整類別註解

<?php
/**
 * 用戶服務類別
 *
 * 處理用戶註冊、認證、資料更新等核心業務邏輯。
 *
 * @package App\Services
 * @author  Jane Chen <jane@company.com>
 * @version 2.1.0
 * @since   1.0.0
 */
class UserService
{
    /**
     * @var UserRepository 用戶資料存取庫
     */
    protected $repository;

    /**
     * 建構式
     *
     * @param UserRepository $repo 注入的 Repository 實例
     */
    public function __construct(UserRepository $repo)
    {
        $this->repository = $repo;
    }

    /**
     * 依 ID 取得用戶資料
     *
     * @param int $id 用戶 ID
     * @return User|null 找到回傳 Entity,否則 null
     * @throws RepositoryException 資料層異常
     */
    public function findById(int $id): ?User
    {
        return $this->repository->find($id);
    }
}

工具鏈整合

  • IDE:PhpStorm、VS Code (PHP Intelephense) 自動讀取註解提供型別提示、跳轉定義。
  • 靜態分析:Psalm、PHPStan、Rector 依賴 @param/@return/@var 做型別推導。
  • 文件產生:phpDocumentor、Sami、ApiGen 產生 HTML/Markdown API 文件。
  • Git Hooks:pre-commit 搭配 php-cs-fixer、phpstan 強制註解完整性。

團隊落地建議

  1. 建立 .php-cs-fixer.php 或 phpstan.neon 規則檔,納入 CI/CD。
  2. 新增檔案/方法必填註解,Code Review 檢查點納入清單。
  3. 定期跑 phpdoc -d src -t docs 產生文件,部署到內部 Wiki。
  4. 針對 Legacy Code 逐步補齊,優先覆蓋核心 Domain 與 Public API。

總結

PHPDoc 註解不是「寫給機器看的廢話」,而是型別系統的補充、維護者的地圖、自動化工具的燃料。遵循標準標籤、統一格式、整合工具鏈,能讓團隊在重構、接手、除錯時事半功倍。從今天開始,把每個 /** 當作對未來自己的投資吧。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved