Hướng dẫn what is inheritdoc php? - inheritdoc php là gì?

Di sản

PhpDocumentor có khả năng kế thừa một lượng lớn thông tin từ các yếu tố trong các siêu lớp và siêu giao tiếp đã bị ghi đè và trong trường hợp các lớp và giao diện ngay cả từ chính một siêu lớp.

Để dễ đọc tài liệu này đã được tách thành ba phần:

  • Các lớp và giao diện
  • Đặc tính
  • Phương pháp

Trong mỗi chương này, chúng tôi sẽ mô tả cách thông tin được kế thừa cho yếu tố cụ thể đó. Nếu bạn đọc kỹ thì bạn sẽ nhận thấy rằng chúng khác nhau rất ít, chủ yếu là khác nhau trong đó các thẻ được kế thừa và cách mỗi thẻ bị ảnh hưởng bởi một siêu yếu tố.

Interfaces and classes are treated equally with regards to inheritance, as such whenever we refer to a class we also
mean an interface to make the text easier on the eyes.

Thẻ kế thừa

Trước khi chúng ta thảo luận về cách tài liệu cho từng yếu tố được kế thừa, thật thú vị khi chỉ ra thẻ kế thừa. Thẻ nội tuyến {@inheritDoc} được sử dụng trong một mô tả để nhập mô tả của phần tử cha, ngay cả khi phần tử con đã có mô tả.

Vì vậy, chúng ta hãy nhìn vào một ví dụ. Trong khối mã sau, chúng tôi định nghĩa lại (ghi đè) một phương thức của một siêu lớp tưởng tượng:

/**
 * This is the summary.
 *
 * This is the description specific to the redefined method. {@inheritDoc} And this is another
 * part specific to the redefined method.
 */
public function aMethod()
{
}

Bây giờ giả sử rằng phương thức ghi đè có mô tả This is the description specific to the overridden method.; Mô tả về phương pháp được xác định lại sẽ là:

This is the description specific to the redefined method. This is the description specific to the overridden
method. And this is another part specific to the redefined method.

Như bạn có thể thấy, hai mô tả đã được kết hợp thành một, trong đó mô tả của phần tử ghi đè đã được chèn vào vị trí của thẻ nội tuyến {@inheritDoc}.

Currently some applications have DocBlocks containing just the ``{@inheritDoc}`` inline tag to indicate that their
complete contents should be inherited. This usage breaks with the PHPDoc Standard as summaries cannot contain inline
tags and inheritance is automatic; you do not need to define a special tag for it.

However, it does make clear that an element has been explicitly documented (and thus not forgotten). As such we are
working to include a new (normal) tag in the PHPDoc Standard ``@inheritDoc`` that will serve that purpose.

Các lớp và giao diện

Có lẽ đơn giản nhất trong tất cả các yếu tố, bởi vì một tài liệu cho một lớp sử dụng đầy đủ các nguyên tắc hướng đối tượng mà PHP cung cấp và kế thừa các thông tin sau từ siêu lớp (trừ khi được ghi đè):

  • Bản tóm tắt
  • Sự mô tả
  • Các thẻ sau:

    • tác giả
    • Bản quyền
    • bưu kiện
    • đóng gói con
    • phiên bản

Như được gợi ý trong văn bản mở đầu của chương này, mỗi người ở trên sẽ chỉ được kế thừa nếu docblock của trẻ không có phần tử được thừa hưởng. Vì vậy, ví dụ, nếu tài liệu của một lớp con có một bản tóm tắt thì nó sẽ không nhận được tóm tắt của siêu lớp.

Thẻ @subpackage sẽ chỉ được kế thừa nếu @package của cha mẹ khớp với thẻ @package của lớp con; Nếu không, các gói con sẽ 'chảy máu' vào các gói khác, nơi chúng không muốn.

Đặc tính

Kế thừa cho các chức năng thuộc tính tương tự như các lớp và giao diện. Khi một siêu lớp của lớp hiện tại chứa một thuộc tính có cùng tên (do đó, thuộc tính này được xác định lại) thì thông tin sau được kế thừa từ thuộc tính được ghi đè đó:

  • Bản tóm tắt
  • Sự mô tả
  • Các thẻ sau:

    • tác giả
    • Bản quyền
    • phiên bản
    • Như được gợi ý trong văn bản mở đầu của chương này, mỗi người ở trên sẽ chỉ được kế thừa nếu docblock của trẻ không có phần tử được thừa hưởng. Vì vậy, ví dụ, nếu tài liệu của một lớp con có một bản tóm tắt thì nó sẽ không nhận được tóm tắt của siêu lớp.

Thẻ @subpackage sẽ chỉ được kế thừa nếu @package của cha mẹ khớp với thẻ @package của lớp con; Nếu không, các gói con sẽ 'chảy máu' vào các gói khác, nơi chúng không muốn.

Đặc tính

Kế thừa cho các chức năng thuộc tính tương tự như các lớp và giao diện. Khi một siêu lớp của lớp hiện tại chứa một thuộc tính có cùng tên (do đó, thuộc tính này được xác định lại) thì thông tin sau được kế thừa từ thuộc tính được ghi đè đó:

  • Bản tóm tắt
  • Sự mô tả
  • Các thẻ sau:

    • tác giả
    • Bản quyền
    • phiên bản
    • Như được gợi ý trong văn bản mở đầu của chương này, mỗi người ở trên sẽ chỉ được kế thừa nếu docblock của trẻ không có phần tử được thừa hưởng. Vì vậy, ví dụ, nếu tài liệu của một lớp con có một bản tóm tắt thì nó sẽ không nhận được tóm tắt của siêu lớp.
    • Thẻ @subpackage sẽ chỉ được kế thừa nếu @package của cha mẹ khớp với thẻ @package của lớp con; Nếu không, các gói con sẽ 'chảy máu' vào các gói khác, nơi chúng không muốn.
    • Đặc tính

Kế thừa cho các chức năng thuộc tính tương tự như các lớp và giao diện. Khi một siêu lớp của lớp hiện tại chứa một thuộc tính có cùng tên (do đó, thuộc tính này được xác định lại) thì thông tin sau được kế thừa từ thuộc tính được ghi đè đó: