Есть ли синтаксис для документирования функций, которые принимают один конфигурационный массив, а не отдельные параметры?
Я имею в виду библиотеки CodeIgniter, которые используют механизм, подобный этому:
<?php
//
// Library definition
//
class MyLibrary {
var $foo;
var $bar;
var $baz;
// ... and many more vars...
/* Following is how CodeIgniter documents their built-in libraries,
* which is mostly useless. AFAIK they should be specifying a name
* and description for their @param (which they don't) and omitting
* @return for constructors
*/
/**
* @access public
* @param array
* @return void
*/
function MyLibrary($config = array()) {
foreach ($config as $key => $value) {
$this->$key = $value;
}
}
}
//
// Library usage:
//
// Iniitialize our configuration parameters
$config['foo'] = 'test';
$config['bar'] = 4;
$config['baz'] = array('x', 'y', 'z');
$x = new MyLibrary($config);
?>
Итак, мой вопрос заключается в том, есть ли какой-то завершенный способ документирования массива конфигурации за пределами чисто текстового описания? Собственно, указав правильный @param [type] [name] [desc]
, который позволяет PHPDoc анализировать полезные значения?
В противоположность этому, CodeIgniter действительно просто перезаписывает свои собственные значения с помощью тех, которые передаются через массив $config, как указано выше, что позволяет вам закрывать частные члены. Я не поклонник, но я застрял с ним.