PhpStorm drupal {table} SQL sözdizimini tanımayı nasıl öğretirim?


14

Ben SQL sorguları dolu bazı gerçekten eski drupal proje ile ilgileniyorum. PhpStorm SQL anlayışı çok kullanışlı ancak ben drupalizm ile ilgili sorunlar var {table_name}. IDE bunu şikayet ediyor <reference> expected, got '{'.

Nasıl kıvırcık kaşlı ayraçlar içinde dize sadece bir tablo adı olduğunu anlayacak böylece PhpStorm kurabilir miyim? Ya da en azından kıvırcık parantezleri görmezden gelmesini sağlayın?


1
Drupal entegrasyonunu kullanıyor musunuz? PHPStorm ile bu sorunu hiç görmedim. SQL için sorunlara neden olabilecek özel bir eklentiniz var mı?
googletorp

@googletorp evet PhpStorm ile birlikte verilen drupal destek eklentisini kullanıyorum
SiliconMind

1
@SiliconMind Desteklenmediğini düşünüyorum. Sql lehçesini ayarlayabilirsiniz, ancak bu belirli şeyi ayarlayamazsınız, belki diğer eklentiler kodunuzu çalıştırabilir ve size canlı sonuçlar verebilir (Veritabanı Araçları ve SQL gibi) ... belki. Bunu hiç kullanmadım, ama bunun iyi bir uygulama olduğundan emin değilim.
golddragon007

Yanıtlar:


10

PhpStorm Tercihleri> Araçlar> Veritabanı> Kullanıcı Parametreleri'nde:

  • "SQL enjeksiyonu ile dize değişmezlerinde etkinleştir" seçeneğini işaretleyin
  • \{\w+\}Parametre Kalıplarına Ekle .

Ayrıca %\w+, yer tutucular için dil php için izin verilecek satırı değiştirmek isteyebilirsiniz %d. Ekran görüntüsüne ve ayrıca JetBrain'in PhpStorm blog gönderisine bakın: Veritabanı Dili Enjeksiyon Yapılandırması .

PhpStorm preferences ekran görüntüsü


1
PhpStorm sorgu yürütme (Ctrl + Enter kısayolu) ile daha iyi çalışmak \{\w+\}için değiştirmek istiyorum \{(\w+)\}. Eğer sorguyu yürütmek çalışırsanız ekstra parantez olmadan, bu parametre olarak adlandırılan girişine isteyecektir 1. şunlara ait {table_name}, ancak parantez ile bir ÖĞRENMEK İÇİN istemi daha yardımsever olacak tablo_ismi parametresi.
morbiD

Önceki yorumuma ek olarak, parantezlerin yaratacağı farkın örnekleri. Sorgu dizesi için SELECT * FROM {node} WHERE nid = :nid, Ctrl + Enter kısayoluna basıldığında aşağıdaki istemler görüntülenir: parantez içinde ve parantez olmadan .
morbiD

1
Bu, tablo sütunlarının çözümlenmemiş olarak işaretlenmesi sorununu çözmez. Normal sql sözdiziminde olduğu gibi, tabloyu ve sütunlarını tanıyan bir çözüme ihtiyacınız var.
Semra


-5

PHPStorm'u Drupal SQL sözdizimini tanımak için herhangi bir yol bilmiyorum.

Ancak, sadece Drupal tarafından oluşturulan bir sorguda hata ayıklamak istiyorsanız, sorguda süslü parantezleri PHPStorm sorgu konsoluna kopyaladıktan sonra sorgudan kaldırabilirsiniz.


1
Bu tavsiyenin alt oylarının nedeni, tablo adlarının etrafına köşeli parantez eklemenin veya ihmal etmenin Drupal'ın tablo önekleme davranışına müdahale etmesidir. Özellik hakkında ayrıntılar için bu bağlantıya bakın: drupal.org/node/2622
Weston Wedding

@WestonWedding Drupal'da bir sorgu yürütürken kıvırcık parantezlerin kaldırılmasını önermedim. Benim önerim sorgu Drupal PHPStorm sorgu konsoluna kopyaladıktan sonra parantez kaldırmak oldu. Biraz manuel çalışmadır, ancak Drupal tarafından oluşturulan sorgularda hata ayıklamaya yardımcı olur.
Eyal

Anlıyorum! Bu, hiçbir yerde cevabınızda değil, bu yüzden bazı insanlar karışıyor olabilir.
Weston Düğün

Cevabı biraz daha bağlamla güncelledim.
Eyal
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.