programing

Netbeans(PHP)에서의 변수형 힌트

copyandpastes 2023. 1. 22. 22:48
반응형

Netbeans(PHP)에서의 변수형 힌트

netbean에 정규 변수에 대한 유형 힌트를 줄 수 있는 방법이 있는지 궁금해서 인텔리센스가 이를 포착할 수 있습니다.클래스 속성, 함수 매개 변수, 반환 유형 등에 대해 수행할 수 있지만 일반 변수에 대해 수행할 방법을 찾을 수 없습니다.이것은 다른 오브젝트 타입(서비스 로케이터 등)을 반환할 수 있는 메서드가 있는 경우에 매우 도움이 됩니다.

예를 들어 다음과 같습니다.

/**
 * @var Some_Service $someService
 */
$someService = ServiceLocator::locate('someService');

나중에 $someService를 사용하는 경우 netbeans는 Some_Service 클래스에 정의된 사용 가능한 모든 메서드를 제공합니다.

한 줄만 있으면 됩니다.

/* @var $varName Type_Name */

NetBeans PHP 블로그에서 다음 기사를 참조하십시오.https://blogs.oracle.com/netbeansphp/entry/defining_a_variable_type_in

주의: 적어도 버전 8.2에서는 중요한 점은 다음과 같습니다.

  • 1개의 아스타리스크(/*대신/**).
  • 변수 이름 뒤에 유형 배치
  • 타이프 힌트 전후에는 아무것도 없습니다(공백은 제외합니다만, 코멘트가 1 행에 없는 경우는, 그마저도 사용할 수 없습니다.

오래된 질문인 것은 알지만, Eclipse/Zend Studio에 대해서도 비슷한 답변을 찾고 있었고, 이것으로 해결되었습니다.

**이 스타일은 개폐가 한 줄에 있어야 하는데...

/* @var $varName Type_Name */

다른 형식 없음...

/**
 * @var $varName Type_Name
 */ 

아니면...

// @var $varName Type_Name

효과가 있는 것 같았습니다.그게 도움이 됐으면 좋겠어요.

성가신 마법 변수들을 기록하려는 거야?(그랬습니다.이 질문은 현재 구글에서 가장 높은 결과를 얻고 있습니다.누군가에게 도움이 되었으면 좋겠다!)

@property태그를 사용하여 매직 php 변수를 문서화할 수 있습니다.__get()그리고.__set()태그는 클래스 정의 바로 앞에 있는 매뉴얼에서 사용해야 합니다.

/**
 * Class Contact
 * @property string $firstName
 * @property string $lastName
 */
class Contact extends Model {
   ...

이 표기법은 Netbeans 8.1 및 PhpStorm 2016.1에서 테스트된 자동 완료를 트리거합니다.

여기에 이미지 설명 입력

버그 리포트에 의하면, NetBeans 9 로 구문이 변경됩니다.

/* @var $variable VarType */    // vdoc1 (legacy syntax)
/** @var VarType $variable */   // vdoc (new syntax)

또한, 당신이 추가 할 수 있다는 것을 언급할 가치가 있다.[]오브젝트 배열을 나타내는 클래스 이름:

/* @var $foos Foo[] */
$foos = // ...

foreach ($foos as $foo) {
    // $foo will be hinted as Foo here
}

그리고 잊지 마세요use스테이트먼트(예:use Foo;

netbeans 8.0.2에서는 vdoc 템플릿에 다음과 같은 기능이 있습니다.

/* @var $variable type */

그러나 Netbeans는 이를 인식하지 못하고 개체에 대한 올바른 자동 완성 목록을 제공하지 않습니다.대신 변수 선언 직전에 다음과 같이 사용합니다.

/** @var objectType $varName */

vdoc 템플릿의 재고, 특히 PDO 또는 PDOStatement 객체로 사용되는 클래스 변수에 대해서는 그다지 유용하지 않습니다.

제가 사용하는 솔루션 중 하나는 툴 / 옵션 / 에디터 / 코드 템플릿(PHP를 언어로서 선택)에 들어가 새로운 템플릿을 추가하는 것입니다.는 힌트라고 불렀다.그런 다음 확장 텍스트에서 다음 템플릿을 사용합니다.

/** @var ${VAR_TYPE variableFromNextAssignmentType default="ClassName"} $$${VARIABLE variableFromNextAssignmentName default="variable"} */

NetBeans IDE 8.2 의 구문은 다음과 같습니다.

class foobar{
    /** @var string $myvar: optional description here **/
    protected static $myvar;
}

이렇게 하면 적어도 정적 변수에 대한 유형 힌트를 제대로 제공할 수 있습니다.

언급URL : https://stackoverflow.com/questions/1798477/variable-type-hinting-in-netbeans-php

반응형