“# @ +” Ve “# @ -” dizeleri yorumlarda ne anlama geliyor?


15

Bazı Magento 2 sınıflarının yorumlarında birçok "# @ +" & "# @ -" dizesi görüyorum. \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';
    /**#@-*/
    ...
}

Bu belirteçlerin amacı nedir?

Yanıtlar:


14

Bu karakterler bir PHPDoc DocBlock şablonunu bildirmek için kullanılır :

Bir DocBlock şablonunun amacı, gereksiz yazmayı azaltmaktır. Örneğin, çok sayıda sınıf değişkeni özelse, bunları özel olarak işaretlemek için bir DocBlock şablonu kullanılır. DocBlock şablonları, şablon bloğunda bulunan normal DocBlock'ları genişletir.

Bir DocBlock şablonu, üstbilgisiyle normal bir DocBlock'tan ayırt edilir.

/**#@+
 *
 */

Bunu bir DocBlock şablonu olarak işaretleyen metin "/ ** # @ +" dır - 6 karakterin tümü olmalıdır. DocBlock şablonları, bitiş şablon işaretleyicisine kadar tüm belgelendirilebilir öğelere uygulanır:

/**#@-*/

PhpDocumentor'un bunları şablon olarak tanıması için 8 karakterin de "/ ** # @ - * /" olarak görünmesi gerektiğini unutmayın.

Daha fazla bilgiyi burada bulabilirsiniz: http://codingexplained.com/coding/php/how-to-use-docblock-templates-in-phpdoc

Bazı açıklamalar resmi Magento belgelerinde de mevcuttur: http://devdocs.magento.com/guides/v2.0/coding-standards/docblock-standard-general.html


6

Aynı türde birden çok ardışık öğenin bildirimi varsa, aynı DocBlock içeriği bunların tümü ile ilgili olabilir. Bu durumda, bu öğeler için ayrı DocBlocks öğelerinin yerine bir DocBlock şablonu kullanılabilir.

DocBlock şablonu iki DocBlock yorumundan oluşur:

Yoruma başlamak, grubun ilk öğesinden önce gelir, # @ + ile ayırt edilir ve aşağıdaki gibi biçimlendirilir:

/**#@+
 *
 */

Yorumun sonlandırılması, grubun son öğesinden sonradır, # @ - ile ayırt edilir ve aşağıdaki gibi biçimlendirilir:/**#@-*/

Örneğin, birden çok sınıf sabitinin veya niteliğinin beyanı:

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();
    /**#@-*/

Burada referans

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.