จะสอน PhpStorm ให้จดจำ drupal {table} ไวยากรณ์ SQL ได้อย่างไร


14

ฉันกำลังจัดการกับโครงการ drupal เก่า ๆ ที่เต็มไปด้วยแบบสอบถาม SQL ความเข้าใจของ PhpStorm เกี่ยวกับ SQL นั้นมีประโยชน์มาก แต่ฉันมีปัญหากับการใช้ Drupalism เช่น{table_name}เดียวกัน IDE <reference> expected, got '{'บ่นว่า

ฉันจะตั้งค่า PhpStorm ได้อย่างไรเพื่อที่จะเข้าใจว่าสตริงภายในเครื่องหมายปีกกาเป็นเพียงชื่อตาราง? หรืออย่างน้อยก็ทำให้ไม่สนใจวงเล็บปีกกา?


1
คุณใช้ Drupal Integration หรือไม่ ฉันไม่เคยเห็นปัญหานี้กับ PHPStorm คุณมีปลั๊กอินพิเศษสำหรับ SQL ที่อาจทำให้เกิดปัญหาหรือไม่?
googletorp

@googletorp ใช่ฉันใช้ปลั๊กอินสนับสนุน drupal ที่มาพร้อมกับ PhpStorm
SiliconMind

1
@SiliconMind ฉันไม่ได้รับการสนับสนุน คุณสามารถตั้งค่า sql dialect แต่คุณไม่สามารถตั้งค่าเฉพาะสิ่งนี้ได้อาจเป็นเพราะปลั๊กอินอื่น ๆ สามารถเรียกใช้โค้ดของคุณและให้ผลลัพธ์แบบสด (เช่นเครื่องมือฐานข้อมูลและ SQL) ... อาจเป็นไปได้ ฉันไม่เคยใช้มัน แต่ฉันไม่แน่ใจว่าเป็นการปฏิบัติที่ดี
golddragon00729

คำตอบ:


10

ในการตั้งค่า PhpStorm> เครื่องมือ> ฐานข้อมูล> พารามิเตอร์ผู้ใช้:

  • ทำเครื่องหมาย "เปิดใช้งานในตัวอักษรสตริงด้วยการฉีด SQL"
  • เพิ่ม\{\w+\}ในรูปแบบพารามิเตอร์

นอกจากนี้คุณยังอาจต้องการที่จะปรับเปลี่ยนบรรทัดที่มี%\w+จะได้รับอนุญาตสำหรับภาษา php %dสำหรับตัวยึดตำแหน่งเช่น ดูภาพหน้าจอและยังโพสต์ PhpStorm บล็อก JetBrain: การตั้งค่าฐานข้อมูลการฉีดภาษา

ภาพหน้าจอการตั้งค่า PhpStorm


1
ฉันจะเปลี่ยน\{\w+\}เป็นการ\{(\w+)\}ทำงานที่ดีขึ้นด้วยการดำเนินการค้นหาของ PhpStorm (Ctrl + Enter ทางลัด) หากไม่มีวงเล็บพิเศษหากคุณพยายามเรียกใช้งานแบบสอบถามจะทำให้คุณป้อนพารามิเตอร์ชื่อ# 1สำหรับคุณ{table_name}แต่ด้วยวงเล็บจะช่วยให้คุณป้อนพารามิเตอร์table_name ได้อย่างเป็นประโยชน์มากขึ้น
morbiD

ต่อจากความคิดเห็นก่อนหน้าของฉันนี่คือตัวอย่างของความแตกต่างที่วงเล็บจะทำ สำหรับสตริงแบบสอบถามของSELECT * FROM {node} WHERE nid = :nidการกด Ctrl + Enter แสดงทางลัดแจ้งต่อไปนี้: มีวงเล็บและโดยไม่ต้องวงเล็บ
morbiD

1
นี่ไม่ได้แก้ปัญหาที่คอลัมน์ตารางถูกทำเครื่องหมายว่ายังไม่ได้แก้ไข ต้องการวิธีแก้ปัญหาที่รู้จักตารางและคอลัมน์ดังเช่นในไวยากรณ์ sql ปกติ
Semra


-5

ฉันไม่รู้วิธีใดที่จะทำให้ PHPStorm จดจำไวยากรณ์ Drupal SQL

แต่ถ้าคุณต้องการดีบักเคียวรีที่สร้างโดย Drupal คุณสามารถลบวงเล็บปีกกาออกจากแบบสอบถามหลังจากคัดลอกไปยังคอนโซลแบบสอบถาม PHPStorm


1
เหตุผลสำหรับ downvotes ของคำแนะนำนี้เป็นเพราะการลบหรือละเลยการใส่เครื่องหมายวงเล็บรอบชื่อตารางจะรบกวนการทำงานของคำนำหน้าตารางของ 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.