Nasıl Phpdoc / Javadoc bir erişimci / mutator yöntemi belgelemek için?

1 Cevap php

Böyle kendisine geçirilen argümanların bağlı bir mutator veya erişimcisine, ya gibi davranan bir fonksiyonu Verilen:

// in PHP, you can pass any number of arguments to a function...
function cache($cacheName) {
    $arguments = func_get_args();

    if (count($arguments) >= 2) {   // two arguments passed. MUTATOR.

        $value = $arguments[1];             // use the second as the value
        $this->cache[$cacheName] = $value;  // *change* the stored value

    } else {    // 1 argument passed, ACCESSOR
        return $this->cache[$cacheName];  // *get* the stored value
    }
}

cache('foo', 'bar');  // nothing returned
cache('foo')          // 'bar' returned

Nasıl bu PHPDoc veya benzer bir otomatik belge yaratıcısı belge mi? Ben aslında sadece bu gibi yazmıştı:

/**
 *  Blah blah blah, you can use this as both a mutator and an accessor:
 *    As an accessor:
 *    @param   $cacheName   name of the variable to GET
 *    @return  string       the value...
 *
 *    As a mutator:
 *    @param   $cacheName   name of the variable to SET
 *    @param   $value       the value to set
 *    @return  void
 */

Bu PHPDoc aracılığıyla çalıştırıldığında Ancak, 2 dönüş etiketleri vardır, çünkü şikayet ve ilk @param $cacheName açıklama saniye tarafından yazılır.

Bu etrafında bir yolu var mı?

1 Cevap

Eğer öğrendim gibi, tek bir fonksiyonun 2 farklı imzalar belge olamaz. Eğer kullanırsanız phpDocumentor - - ne yapabileceğini, ancak, optional function parameters ve multiple possible return types belgelemek için:

/**
 * Blah blah blah, you can use this as both an accessor and a mutator, e.g.
 * <code>cache('name') // get cache value</code>
 *   and
 * <code>cache('name', 'value') // set new cache value</code>.
 *
 * @param   string  $cacheName  name of the variable to GET|SET
 * @param   string  $value      optional new value
 *
 * @return  string|void value of $cacheName or, in case of mutator, void
 */

açıklık için, ben de kullanım örneği içerir.