Come insegnare a PhpStorm a riconoscere la sintassi SQL drupal {table}?


14

Ho a che fare con un progetto drupal davvero vecchio pieno di query SQL. La comprensione di SQL da parte di PhpStorm è molto utile, tuttavia ho problemi con il drupalismo {table_name}. IDE si lamenta di questo <reference> expected, got '{'.

Come posso impostare PhpStorm in modo che capisca che la stringa all'interno delle parentesi graffe è solo un nome di tabella? O almeno farlo ignorare le parentesi graffe?


1
Stai usando l'integrazione Drupal? Non ho mai visto questo problema con PHPStorm. Hai un plug-in speciale per SQL che potrebbe causare problemi?
googletorp

@googletorp si sto usando il plugin di supporto drupal in bundle con PhpStorm
SiliconMind

1
@SiliconMind Non è supportato, credo. Puoi impostare il dialetto sql, ma non puoi impostare questa cosa specifica, forse perché altri plugin possono eseguire il tuo codice e darti risultati in tempo reale (come Strumenti di database e SQL) ... forse. Non l'ho mai usato, ma non sono sicuro che sia una buona pratica.
golddragon007,

Risposte:


10

In Preferenze di PhpStorm> Strumenti> Database> Parametri utente:

  • Seleziona "Abilita in stringhe letterali con iniezione SQL"
  • Aggiungi \{\w+\}a modelli di parametri.

Potresti anche voler modificare la riga con %\w+per consentire la lingua php per segnaposto come %d. Vedi screenshot e anche il post sul blog PhpStorm di JetBrain: Configurazione dell'iniezione della lingua del database .

Schermata delle preferenze di PhpStorm


1
Vorrei cambiare \{\w+\}a \{(\w+)\}lavorare meglio con l'esecuzione di query di PhpStorm (la scorciatoia Ctrl + Invio). Senza le parentesi extra, se si tenta di eseguire la query, verrà richiesto di immettere un parametro chiamato # 1 per il proprio {table_name}, ma con le parentesi verrà più utile richiedere un parametro table_name .
morbiD

Oltre al mio commento precedente, ecco alcuni esempi della differenza che farebbero le parentesi. Per una stringa di query di SELECT * FROM {node} WHERE nid = :nid, premendo il tasto Ctrl + Invio si visualizzano i seguenti prompt: con parentesi e senza parentesi .
morbiD

1
Ciò non risolve il problema in cui le colonne della tabella sono contrassegnate come non risolte. Serve una soluzione che riconosca la tabella e le sue colonne, come nella normale sintassi sql.
Semra,


-5

Non conosco alcun modo per far riconoscere a PHPStorm la sintassi Drupal SQL.

Ma se vuoi solo eseguire il debug di una query creata da Drupal, puoi rimuovere le parentesi graffe dalla query dopo averla copiata nella console di query PHPStorm.


1
Il motivo della riduzione dei voti di questo consiglio è perché la rimozione o la mancata inclusione di parentesi attorno ai nomi delle tabelle interferirà con il comportamento del prefisso delle tabelle di Drupal. Vedi questo link per i dettagli sulla funzione: drupal.org/node/2622
Weston Wedding

@WestonWedding Non ho suggerito di rimuovere le parentesi graffe durante l'esecuzione di una query in Drupal. Il mio suggerimento era di rimuovere le parentesi dopo aver copiato la query da Drupal alla console di query PHPStorm. È un po 'di lavoro manuale, ma aiuta durante il debug delle query create da Drupal.
Eyal,

Vedo! Bene, questo non è nella tua risposta da nessuna parte, quindi alcune persone potrebbero essere confuse.
Weston Wedding,

Ho aggiornato la risposta con un po 'più di contesto.
Eyal,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.