주석에서“# @ +”및“# @-”문자열은 무엇을 의미합니까?


15

일부 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';
    /**#@-*/
    ...
}

이 마커의 목적은 무엇입니까?

답변:


14

이러한 문자는 PHPDoc DocBlock 템플릿선언하는 데 사용됩니다 .

DocBlock 템플릿의 목적은 중복 입력을 줄이는 것입니다. 예를 들어, 많은 클래스 변수가 개인용 인 경우 DocBlock 템플리트를 사용하여 개인용으로 표시합니다. DocBlock 템플릿은 단순히 템플릿 블록에있는 일반적인 DocBlock을 보강합니다.

DocBlock 템플릿은 헤더에 의해 일반적인 DocBlock과 구별됩니다.

/**#@+
 *
 */

이것을 DocBlock 템플릿으로 표시하는 텍스트는 "/ ** # @ +"입니다. 6 자 모두 존재해야합니다. DocBlock 템플릿은 끝 템플릿 마커까지 모든 문서화 가능한 요소에 적용됩니다.

/**#@-*/

phpDocumentor가 템플릿으로 인식하기 위해서는 8 개의 문자가 모두 "/ ** # @-* /"로 나타나야합니다.

자세한 내용은 여기를 참조하십시오 : http://codingexplained.com/coding/php/how-to-use-docblock-templates-in-phpdoc

일부 설명은 공식 Magento 설명서 ( http://devdocs.magento.com/guides/v2.0/coding-standards/docblock-standard-general.html) 에서도 볼 수 있습니다.


6

동일한 유형의 여러 연속 요소가 선언 된 경우 동일한 DocBlock 내용이 모든 요소와 관련 될 수 있습니다. 이 경우 해당 요소에 대한 개별 DocBlock은 DocBlock 템플리트로 대체 될 수 있습니다.

DocBlock 템플릿은 두 개의 DocBlock 주석으로 구성됩니다.

시작 주석은 그룹의 첫 번째 요소 앞에 있으며 # @ +로 구별되며 다음과 같이 형식화됩니다.

/**#@+
 *
 */

종료 주석은 그룹의 마지막 요소 다음에 # @-로 구분되며 다음과 같이 형식화됩니다./**#@-*/

예를 들어, 여러 클래스 상수 또는 속성 선언 :

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

여기 참조

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.