2015-05-06 17 views
22

Cách tốt nhất để ghi lại tài liệu, cho phpdocumentor2, một phương thức là trình tạo.Cách tốt nhất để tạo tài liệu (phpdoc) máy phát điện (phương pháp tạo ra)

Tôi không nghĩ rằng @return thực sự hoạt động với yield, nhưng dường như tôi không tìm thấy bất kỳ giải pháp thay thế phù hợp nào.

Chỉ là vấn đề chờ đợi phpdoc bắt kịp?

+0

IMHO '@ return' là thích hợp, vì nó biểu thị những gì bạn nhận lại từ máy phát điện. – Anticom

+7

Hiện tại không có cách nào để làm điều này. Bạn đúng trong '@ return' chắc chắn là không chính xác. Rất có thể cú pháp sẽ là '@yield V' hoặc' @return Generator ', có thể với khả năng chỉ định K, S và R. Xem thêm https://github.com/phpDocumentor/fig-standards/issues/5 – NikiC

+0

@NikiC Câu trả lời của bạn thực sự được đăng dưới dạng câu trả lời. – meridius

Trả lời

8

From the PHP Manual:

Khi một chức năng máy phát điện được gọi là lần đầu tiên, một đối tượng của lớp Generator nội bộ được trả về.

Vì vậy, nói đúng, @return Generator sẽ chính xác, mặc dù không mô tả siêu về những gì bạn có thể mong đợi quay lại khi bạn lặp lại máy phát.

2

Đối với mục đích thực tế, giá trị có nghĩa là trả về một mảng giá trị. Do đó, có lợi nhất là chỉ định an array of specific types làm giá trị trả lại.

Example with auto-complete

Như đã đề cập trong các ý kiến, there are caveats, nhưng có một kết thúc kiểu làm việc giá trị hơn họ trong tâm trí tôi. Do đó, từ quan điểm về khả năng sử dụng, tôi không thấy cách nào tốt hơn để làm điều đó cho đến this will be resolved in the upstream.

+0

Mặc dù tôi đồng ý rằng trong hầu hết các trường hợp, có thể OK để đánh dấu chức năng của máy phát khi trả về một mảng, tôi nghĩ điều quan trọng là làm nổi bật một số trường hợp máy phát và mảng sẽ hoạt động khác. Ví dụ, gọi 'sizeof' trên máy phát sẽ trả về 1. Gọi' array_keys' trên nó, sẽ kích hoạt cảnh báo. Cố gắng truy cập một giá trị cụ thể ('$ generator [15]') sẽ ném một lỗi Fatal. –

+0

@MaximeRainville Đây là những lỗi dễ nắm bắt. Bạn sẽ thấy chúng trong lần chạy đầu tiên. Không phải là một mức giá lớn để trả cho việc hoàn thành loại công việc. Và dù sao đi nữa, không ai ngăn cản bạn viết một lời nhận xét rõ ràng để lưu ý rằng mảng này thực sự là một đối tượng máy phát điện. – sanmai

+0

Thay vào đó, việc hoàn thành loại công việc có thể được cấu hình lại ... – helvete

15

Tôi đã đi với @return Generator|SomeObject[], trong đó SomeObject là điều được mang lại.

PhpStorm xử lý tốt quá, vì nó bây giờ thường gợi ý các phương pháp Generator và khi lặp lại nó gợi ý phương pháp SomeObject.

(Tuy nhiên, tôi muốn một người gốc @yield.)

+1

Gợi ý biên tập: Netbeans chỉ cần 'SomeObject' (hoặc' \ SomeObject') trong '@ return' để nhắc các phương thức của SomeObject. PhpStorm cần thêm '[]' vào cuối kiểu ('SomeObject []'). Vì vậy, tôi thinkbest tùy chọn là để viết nó như @ Robbert đã viết: '@return Generator | \ SomeObject []'. –

+0

Điều gì về 'Generator-> getReturn()', như của PHP 7? – SOFe

+0

Điều đó thậm chí còn khó hơn để gợi ý. Bạn có đề nghị gì? – Robbert

Các vấn đề liên quan