展開文件目錄

PHPDoc

PHPDoc 是註解 PHP 程式碼的非正式標準。它有許多不同的標記可以使用。完整的標記列表和範例可以查看 PHPDoc 指南。

底下是撰寫類別方法時的一種寫法:

<?php
/**
 * @author A Name <a.name@example.com>
 * @link http://www.phpdoc.org/docs/latest/index.html
 * @package helper
 */
class DateTimeHelper
{
    /**
     * @param mixed $anything Anything that we can convert to a \DateTime object
     *
     * @return \DateTime
     * @throws \InvalidArgumentException
     */
    public function dateTimeFromAnything($anything)
    {
        $type = gettype($anything);

        switch ($type) {
            // Some code that tries to return a \DateTime object
        }

        throw new \InvalidArgumentException(
            "Failed Converting param of type '{$type}' to DateTime object"
        );
    }

    /**
     * @param mixed $date Anything that we can convert to a \DateTime object
     *
     * @return void
     */
    public function printISO8601Date($date)
    {
        echo $this->dateTimeFromAnything($date)->format('c');
    }

    /**
     * @param mixed $date Anything that we can convert to a \DateTime object
     */
    public function printRFC2822Date($date)
    {
        echo $this->dateTimeFromAnything($date)->format('r');
    }
}

這個類別說明首先使用 @author 標記,它是用來說明程式碼的作者,在多位開發者的情況下,可以同時列出好幾位。其次使用 @link 標記,它提供連一個網站連結,連結到進一步說明程式碼的網站。第三個標記使用了 @package,用來分類組織程式碼。

在這個類別中,第一個方法的 @param 標記,說明類型、名稱和傳入方法的參數。此外,@return@throws 標記說明回傳類型以及可能會丟出的例外。

第二、第三個方法非常類似,和第一個方法一樣使用一個 @param 標記。第二、和第三個方法之間關鍵差別在註解區塊使用/排除 @return 標記。「@return void」標記明確告訴我們沒有回傳值,而過去省略「@return void」宣告也具有相同效果(沒有回傳任何東西)。