Drupal {table} SQL 구문을 인식하도록 PhpStorm을 가르치는 방법은 무엇입니까?


14

SQL 쿼리로 가득 찬 정말 오래된 drupal 프로젝트를 다루고 있습니다. PhpStorm의 SQL에 대한 이해는 매우 편리하지만 drupalism과 같은 문제가 있습니다 {table_name}. IDE는 그것을 불평합니다 <reference> expected, got '{'.

중괄호 안의 문자열이 테이블 이름임을 이해하도록 PhpStorm을 어떻게 설정합니까? 아니면 적어도 중괄호를 무시하게합니까?


1
Drupal 통합을 사용하고 있습니까? PHPStorm에서이 문제를 본 적이 없습니다. 문제를 일으킬 수있는 SQL 용 특수 플러그인이 있습니까?
googletorp

@googletorp 예 PhpStorm과 함께 번들로 제공되는 drupal 지원 플러그인을 사용하고 있습니다
SiliconMind

1
@SiliconMind 지원되지 않습니다. SQL 언어를 설정할 수는 있지만 다른 플러그인이 코드를 실행하고 결과를 (데이터베이스 도구 및 SQL과 같은) 실시간으로 제공 할 수 있기 때문에이 특정 항목을 설정할 수 없습니다. 나는 그것을 사용하지 않았지만, 그것이 좋은 습관인지 확실하지 않습니다.
golddragon007

답변:


10

PhpStorm 환경 설정> 도구> 데이터베이스> 사용자 매개 변수에서 :

  • "SQL 주입으로 문자열 리터럴에서 사용"확인
  • \{\w+\}파라미터 패턴에 추가 합니다.

%\w+같은 자리 표시 자에 대해 언어 PHP를 허용하도록로 줄을 수정할 수도 있습니다 %d. 스크린 샷 및 JetBrain의 PhpStorm 블로그 게시물 ( 데이터베이스 언어 삽입 구성)을 참조하십시오 .

PhpStorm 환경 설정 스크린 샷


1
PhpStorm의 쿼리 실행 (Ctrl + Enter 단축키)으로 더 잘 작동하도록 변경 \{\w+\}했습니다 \{(\w+)\}. 쿼리를 실행하려고하면 여분의 괄호없이, 그것은 매개 변수라고 입력하라는 메시지를 표시합니다 # 1 당신을위한을 {table_name}하지만 괄호로는 대한 프롬프트를 더 유용하게 것이다 TABLE_NAME의 매개 변수입니다.
morbiD

이전의 의견 외에도 괄호와의 차이점에 대한 예는 다음과 같습니다. 의 쿼리 문자열의 경우 SELECT * FROM {node} WHERE nid = :nid:에서 Ctrl + 누르면 바로 가기 표시에게 다음과 같은 메시지를 입력 괄호괄호없이 .
morbiD

1
이렇게하면 테이블 열이 해결되지 않은 것으로 표시되는 문제가 해결되지 않습니다. 일반 SQL 구문에서와 같이 테이블과 해당 열을 인식하는 솔루션이 필요합니다.
Semra


-5

PHPStorm이 Drupal SQL 구문을 인식하도록하는 방법을 모르겠습니다.

그러나 Drupal에서 생성 한 쿼리를 디버그하려는 경우 PHPStorm 쿼리 콘솔에 복사 한 후 쿼리에서 중괄호를 제거 할 수 있습니다.


1
이 조언의 다운 보트의 이유는 테이블 이름 주위에 대괄호를 포함하거나 제거하지 않으면 Drupal의 테이블 접두사 동작을 방해하기 때문입니다. 기능에 대한 자세한 내용은 다음 링크를 참조하십시오. drupal.org/node/2622
Weston Wedding

@WestonWedding Drupal에서 쿼리를 실행하는 동안 중괄호를 제거하지 않는 것이 좋습니다. Drupal에서 PHPStorm 쿼리 콘솔로 쿼리를 복사 한 후 괄호를 제거하는 것이 좋습니다. 약간의 수동 작업이지만 Drupal에서 만든 쿼리를 디버깅 할 때 도움이됩니다.
Eyal

내가 참조! 글쎄, 그것은 당신의 대답에 어디에도 없으므로 일부 사람들은 혼란 스러울 수 있습니다.
Weston Wedding

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