2010-04-26 40 views
17

Tôi sử dụng một số mảng kết hợp trong ứng dụng PHP của mình và tôi đang sử dụng tài liệu PHP để nhận xét các nguồn của mình. Tôi chưa bao giờ thực sự chỉ định các chú thích cho các mảng trong một mảng, nhưng bây giờ tôi cần phải làm điều đó và không biết làm thế nào.Chú thích mảng kết hợp trong PHP Documentor

$array = array('id' => 'test', 'class' => 'tester', 'options' => array('option1' => 1, 'option2' => 2)) 

Làm cách nào để nhận xét mảng này theo cách chính xác cho @var@param nhận xét? tôi có thể làm điều này như thế này, nhưng tôi không biết nếu điều này là đúng:

@param string $array['id'] 
@param string $array['class'] 
@param int $array['options']['option1'] 

Nhưng làm thế nào để làm điều này cho các phần @var?

Trả lời

29

Bạn không thể ghi lại mỗi khóa, nhưng you can tell phpDocumentor what type it is.

Bạn có thể làm một cái gì đó như thế này:

/** 
* Form the array like this: 
* <code> 
* $array = array(
* 'id'  => 'foo',   // the id 
* 'class' => 'myClass',  // the class 
*); 
* 
* </code> 
* 
* @var array[string]string 
*/ 
$array; 
+0

nhờ sự giúp đỡ của bạn;) – Abenil

+2

Điều này đã được xác nhận để làm việc với tự động hoàn thành/intellisense trong bất kỳ IDE, tôi tự hỏi? Theo [phpDoc ABNF cho các định nghĩa kiểu] (http://www.phpdoc.org/docs/latest/for-users/types.html#abnf), không có phụ cấp cho một loại được chỉ định cho chỉ mục mảng. Và nó chỉ định mảng là '@var string []' (thành phần 'mảng' chỉ được cho là có trong mảng" không xác định "). – Sepster

+0

@Sepster Tôi không nghĩ rằng hầu hết các IDE đủ thông minh để nhận ra điều này, thật không may. Số dặm của bạn có thể thay đổi, nhưng tôi thậm chí còn thấy việc triển khai của Zend Studio hơi thiếu một chút khi nói đến loại nhận thức về loại accute này. –

8

tôi sẽ nhìn vào WordPress Inline Documentation Reference cho một số gợi ý, mặc dù nó không phải là hiện toàn diện.

Sử dụng @ param hoặc @var hoặc @property, nào là thích hợp trong bối cảnh của bạn

Theo những hướng dẫn, bạn có thể ghi lại mảng kết hợp của bạn như thế này:

/** 
* @property array $my_array { 
*  An array of parameters that customize the way the parser works. 
* 
*  @type boolean $ignore_whitespace Whether to gobble up whitespace. Default true. 
*  @type string $error_level What the error reporting level is. Default 'none'. 
*        Accepts 'none', 'low', 'high'. 
* } 
*/ 
+1

Ký hiệu này để ghi lại cấu trúc mảng chưa bao giờ được đưa vào thông số chính thức của PHPDoc mặc dù đã thảo luận nghiêm túc 2013-14 về việc thêm nó. –

+1

Dường như có một số cuộc thảo luận liên quan tại https://github.com/phpDocumentor/phpDocumentor2/issues/650 –

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