วิธีที่ดีที่สุดในการลบตัวแปรทั้งหมดเมื่อถอนการติดตั้งโมดูล


9

ฉันกำลังเขียนโมดูลที่เขียนตัวแปรหลายตัว (สามสี่ตัวแปรสำหรับเนื้อหาทุกประเภทและอื่น ๆ )

ฉันควรใช้วิธีใดในการลบบน hook_uninstall

ปลอดภัยหรือไม่ที่จะทำการค้นหาค้นหาตัวแปร "mymodule_ *"

หรือฉันควรวนลูปสำหรับประเภทเนื้อหาและตัวแปรการค้นหาดังนั้นควรเรียกหลาย ๆ ครั้งว่า variable_del


แทนที่จะสร้างตัวแปรที่ตั้งชื่อตามประเภทเนื้อหาคุณสามารถใช้ตัวแปรที่มีโครงสร้างซึ่งมีชื่อและคีย์ที่รู้จักสำหรับแต่ละประเภทเนื้อหาได้หรือไม่
Chris Burgess

คำตอบ:


10

ตัวแปรจะถูกแคชดังนั้นการลบด้วยตนเองจะใช้ได้ตราบใดที่คุณทำให้แคชนั้นไม่ถูกต้องเช่น

db_delete('variable')
  ->condition('name', 'mymodule_%', 'LIKE')
  ->execute();

cache_clear_all('variables', 'cache_bootstrap');

เคียวรีนี้ตกลงถ้าไม่มีใครสร้างโมดูลซึ่งอยู่ในเนมสเปซของโมดูลเช่นถ้า Views ทำเช่นนี้ก็จะทำให้ตัวแปร vape เป็นของโมดูลเช่น Views Block หรือ Views MysiteCustom สำหรับตัวอย่างนี้ว่าอาจจะไม่เป็นปัญหาใหญ่ แต่คุณได้รับความคิด :)
คริส Burgess

1

นอกจากนี้คุณยังอาจดูโมดูลVariableซึ่งอนุญาตให้โมดูลของคุณใช้รีจิสทรีกำหนดค่าเริ่มต้นและอื่น ๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.