Jak nauczyć PhpStorm rozpoznawania składni SQL drupal {table}?

14

Mam do czynienia z naprawdę starym projektem drupal pełnym zapytań SQL. Rozumienie SQL przez PhpStorm jest bardzo przydatne, ale mam problemy z drupalizmem {table_name}. IDE narzeka na to <reference> expected, got '{'.

Jak skonfigurować PhpStorm, aby zrozumiał, że łańcuch w nawiasach klamrowych to tylko nazwa tabeli? A przynajmniej niech zignoruje nawiasy klamrowe?

SiliconMind
źródło
1
Czy korzystasz z integracji Drupal? Nigdy nie widziałem tego problemu z PHPStorm. Czy masz specjalną wtyczkę do SQL, która może powodować problemy?
googletorp
@googletorp tak, używam wtyczki wsparcia drupal w pakiecie z PhpStorm
SiliconMind,
1
@SiliconMind To chyba nie jest obsługiwane. Możesz ustawić dialekt SQL, ale nie możesz ustawić tej konkretnej rzeczy, być może dlatego, że inne wtyczki mogą uruchamiać Twój kod i dawać wyniki na żywo (takie jak Narzędzia bazy danych i SQL) ... może. Nigdy tego nie użyłem, ale nie jestem pewien, czy to dobra praktyka.
golddragon007

Odpowiedzi:

10

W Preferencjach PhpStorm> Narzędzia> Baza danych> Parametry użytkownika:

  • Zaznacz „Włącz literały łańcuchowe z iniekcją SQL”
  • Dodaj \{\w+\}do wzorców parametrów.

Możesz także zmodyfikować linię, %\w+aby zezwolić na język php dla symboli zastępczych takich jak %d. Zobacz zrzut ekranu oraz post na blogu PhpStorm JetBrain: Konfiguracja wstrzykiwania języka bazy danych .

Zrzut ekranu preferencji PhpStorm

LarS
źródło
1
Chciałbym przejść \{\w+\}na \{(\w+)\}lepszą pracę z wykonywaniem zapytań PhpStorm (skrót Ctrl + Enter). Bez dodatkowych nawiasów, jeśli starają się wykonać zapytanie, to poprosi, aby wprowadzić parametr zwany nr 1 dla Twoich {table_name}, ale z nawiasami to będzie bardziej pomocny szybka swoimi dla nazwa_tabeli parametru.
morbiD
W nawiązaniu do mojego poprzedniego komentarza, oto przykłady różnicy, jaką wprowadziłyby nawiasy. W przypadku ciągu zapytania SELECT * FROM {node} WHERE nid = :nidnaciśnięcie skrótu Ctrl + Enter powoduje wyświetlenie następujących monitów: z nawiasami i bez nawiasów .
morbiD
1
To nie rozwiązuje problemu, gdy kolumny tabeli są oznaczone jako nierozwiązane. Potrzebujesz rozwiązania, które rozpoznaje tabelę i jej kolumny, tak jak w zwykłej składni sql.
Semra
-5

Nie znam żadnego sposobu, aby PHPStorm rozpoznał składnię języka Drupal SQL.

Ale jeśli chcesz po prostu debugować zapytanie utworzone przez Drupala, możesz usunąć nawiasy klamrowe z zapytania po skopiowaniu go do konsoli zapytań PHPStorm.

Eyal
źródło
1
Powodem negatywnych opinii tej porady jest to, że usunięcie lub zaniedbanie włączenia nawiasów wokół nazw tabel będzie zakłócać zachowanie prefiksu tabeli przez Drupala. Zobacz ten link, aby uzyskać szczegółowe informacje na temat funkcji: drupal.org/node/2622
Weston Wedding
@WestonWedding Nie zasugerowałem usunięcia nawiasów klamrowych podczas wykonywania zapytania w Drupal. Moją sugestią było usunięcie nawiasów po skopiowaniu zapytania z Drupala do konsoli zapytań PHPStorm. Jest to trochę ręczna praca, ale pomaga przy debugowaniu zapytań utworzonych przez Drupal.
Eyal
Widzę! Nigdzie nie ma na to odpowiedzi, więc niektórzy ludzie mogą się mylić.
Weston Wedding
Zaktualizowałem odpowiedź nieco większym kontekstem.
Eyal