Apa arti string "# @ +" & "# @ -" di komentar?

15

Saya melihat banyak string "# @ +" & "# @ -" di komentar beberapa kelas Magento 2. \Magento\Customer\Api\Data\AttributeMetadataInterface

interface AttributeMetadataInterface extends \Magento\Framework\Api\MetadataObjectInterface
{
    /**#@+
     * Constants used as keys of data array
     */
    const ATTRIBUTE_CODE = 'attribute_code';
    ...
    const IS_SEARCHABLE_IN_GRID = 'is_searchable_in_grid';
    /**#@-*/
    ...
}

Apa tujuan dari spidol ini?

Alex Gusev
sumber

Jawaban:

14

Karakter-karakter tersebut digunakan untuk mendeklarasikan templat PHPDoc DocBlock :

Tujuan dari template DocBlock adalah untuk mengurangi pengetikan yang berlebihan. Sebagai contoh, jika sejumlah besar variabel kelas bersifat pribadi, orang akan menggunakan templat DocBlock untuk menandainya sebagai pribadi. Templat DocBlock cukup menambah semua DocBlock normal yang ditemukan di blok templat.

Templat DocBlock dibedakan dari DocBlock normal dengan tajuknya.

/**#@+
 *
 */

Teks yang menandai ini sebagai templat DocBlock adalah "/ ** # @ +" - semua 6 karakter harus ada. Templat DocBlock diterapkan ke semua elemen yang dapat didokumentasikan sampai penanda templat yang berakhir:

/**#@-*/

Perhatikan bahwa semua 8 karakter harus muncul sebagai "/ ** # @ - * /" agar phpDocumentor mengenalinya sebagai templat.

Informasi lebih lanjut dapat ditemukan di sini: http://codingexplained.com/coding/php/how-to-use-docblock-templates-in-phpdoc

Beberapa penjelasan juga tersedia di dokumentasi resmi Magento: http://devdocs.magento.com/guides/v2.0/coding-standards/docblock-standard-general.html

Raphael di Digital Pianism
sumber
6

Jika ada deklarasi beberapa elemen berurutan dengan tipe yang sama, konten DocBlock yang sama mungkin relevan untuk semuanya. Dalam hal ini, DocBlocks individual untuk elemen-elemen tersebut, mereka dapat digantikan oleh templat DocBlock.

Templat DocBlock terdiri dari dua komentar DocBlock:

Memulai komentar adalah sebelum elemen pertama grup, dibedakan menggunakan # @ + dan diformat sebagai berikut:

/**#@+
 *
 */

Mengakhiri komentar setelah elemen terakhir grup, dibedakan menggunakan # @ - dan diformat sebagai berikut:/**#@-*/

Misalnya, deklarasi beberapa konstanta atau atribut kelas:

class Mage_Core_Model_Layout extends Varien_Simplexml_Config
{
    /**#@+
     * Supported layout directives
     * @var string
     */
    const TYPE_BLOCK = 'block';
    const TYPE_CONTAINER = 'container';
    /**#@-*/

    /**#@+
     * Scheduled structure elements operations
     *
     * @var array
     */
    protected $scheduledMoves   = array();
    protected $scheduledRemoves = array();
    /**#@-*/

Referensi di sini

Valash Prashant
sumber