Как научить PhpStorm распознавать синтаксис drupal {table} SQL?


14

Я имею дело с каким-то действительно старым проектом drupal, полным SQL-запросов. PhpStorm понимает SQL очень удобно, но у меня есть проблемы с друпализмом {table_name}. IDE жалуется на это <reference> expected, got '{'.

Как я могу настроить PhpStorm, чтобы он понимал, что строка внутри фигурных скобок - это просто имя таблицы? Или хотя бы заставить его игнорировать фигурные скобки?


1
Используете ли вы интеграцию Drupal? Я никогда не видел эту проблему с PHPStorm. У вас есть специальный плагин для SQL, который может вызывать проблемы?
googletorp

@googletorp да Я использую плагин поддержки drupal в комплекте с PhpStorm
SiliconMind

1
@SiliconMind Это не поддерживается, я думаю. Вы можете установить sql диалект, но вы не можете установить эту конкретную вещь, возможно, потому что другие плагины могут запускать ваш код и давать вам результаты в реальном времени (например, Database Tools и SQL) ... возможно. Я никогда не использовал это, но я не уверен, что это хорошая практика.
golddragon007

Ответы:


10

В настройках PhpStorm> Инструменты> База данных> Параметры пользователя:

  • Установите флажок «Включить в строковых литералах с SQL-инъекцией»
  • Добавить \{\w+\}к шаблонам параметров.

Вы также можете изменить строку с %\w+разрешением для языка php для таких заполнителей, как %d. Смотрите скриншот, а также запись в блоге JetBrain PhpStorm: Конфигурация внедрения языка баз данных .

Скриншот настроек PhpStorm


1
Я хотел бы изменить, \{\w+\}чтобы \{(\w+)\}лучше работать с выполнением запроса PhpStorm (сочетание клавиш Ctrl + Enter). Без лишних скобок, если вы попытаетесь выполнить запрос, он предложит вам ввести параметр с именем # 1 для вашего {table_name}, но с круглыми скобками он будет более полезен для запроса параметра table_name .
morbiD

В дополнение к моему предыдущему комментарию, вот примеры различий, которые будут в скобках. Для строки запроса при SELECT * FROM {node} WHERE nid = :nidнажатии комбинации клавиш Ctrl + Enter отображаются следующие подсказки: с круглыми скобками и без круглых скобок .
morbiD

1
Это не решает проблему, когда столбцы таблицы помечаются как нерешенные. Нужно решение, которое распознает таблицу и ее столбцы, как в обычном синтаксисе SQL.
Семра


-5

Я не знаю, как заставить PHPStorm распознавать синтаксис Drupal SQL.

Но если вы просто хотите отладить запрос, созданный Drupal, вы можете удалить фигурные скобки из запроса после его копирования в консоль запросов PHPStorm.


1
Причина, по которой этот совет был отклонен, заключается в том, что удаление или игнорирование включения скобок вокруг имен таблиц будет влиять на поведение префиксов таблиц в Drupal. См. Эту ссылку для получения подробной информации о функции: drupal.org/node/2622
Свадьба Уэстон

@WestonWedding Я не предлагал убирать фигурные скобки при выполнении запроса в Drupal. Я предложил убрать скобки после копирования запроса из Drupal в консоль запросов PHPStorm. Это немного ручной работы, но помогает при отладке запросов, созданных Drupal.
Eyal

Понятно! Ну, это никуда не входит, так что некоторые люди могут запутаться.
Уэстон Свадьба

Я обновил ответ немного больше контекста.
Eyal
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.