เร่งการพัฒนา Drupal ด้วย Drupal Console และ Drush

เผยแพร่แล้ว: 2022-02-22

เราได้เขียนไว้อย่างละเอียดถี่ถ้วนว่า Drupal 8 ไม่เพียงแต่ปรับปรุงประสบการณ์ดิจิทัลให้ทันสมัยสำหรับผู้ใช้เท่านั้น แต่ยังช่วยให้งานพัฒนาของนักพัฒนา Drupal ง่ายขึ้นอีกด้วย ในบทความนี้เราจะพูดถึงเครื่องมือยูทิลิตี้ Drupal 8/9 สองเครื่องที่ลดความซับซ้อนและปรับปรุงวิธีการทำงานกับโค้ด Drupal โมดูล และการติดตั้ง - Drupal Console และ Drush

Drupal Console

Drupal Console คืออะไร

ตั้งแต่ความก้าวหน้าของ Drupal 8 จำเป็นต้องเพิ่มโค้ดสำเร็จรูปจำนวนมากเพื่อสร้างโมดูลใหม่ แน่นอน คุณสามารถคัดลอกและวางโค้ดได้ แต่การทำซ้ำหลายครั้งอาจเปิดประตูสู่ข้อผิดพลาดมากมาย ไม่เป็นไร. เราเป็นมนุษย์ โชคดีที่เรามีคอนโซล Drupal ซึ่งเป็นชุดเครื่องมือที่คุณเรียกใช้บน CLI (Command Line Interface) ที่ให้คุณสร้างโค้ดสำเร็จรูปได้โดยอัตโนมัติ ใช้ประโยชน์จาก Symfony Console และส่วนประกอบบุคคลที่สามอื่นๆ เพื่อสร้างโค้ดส่วนใหญ่ที่จำเป็นในการสร้างโมดูล Drupal 8/9

Drush คืออะไร

Drush (Drupal + Shell) เป็นเครื่องมือ CLI ดั้งเดิมสำหรับ Drupal ช่วยให้คุณสามารถสร้างเว็บไซต์ Drupal ใหม่ได้อย่างง่ายดายและช่วยให้คุณปรับปรุงงานด้านการพัฒนาและการดูแลระบบ Drush มาพร้อมกับคำสั่งที่ง่ายต่อการใช้งานมากมาย ซึ่งช่วยให้คุณโต้ตอบกับการติดตั้ง ธีม โมดูล และอื่นๆ ของ Drupal งานอื่นๆ บางอย่างที่คุณสามารถทำได้ด้วย Drush คือการส่งออก/นำเข้าการกำหนดค่า การแคช การอัปเดตโมดูล contrib การอัปเดตฐานข้อมูล และอื่นๆ อีกมากมาย

Drush ทำงานได้ดีกับ Drupal 6/7/8/9 และนำเสนอข้อดีของแนวทางการพัฒนาที่ทันสมัย ช่วยประหยัดเวลาในการพัฒนา ทั้งในระหว่างการโยกย้ายโมดูล Drupal ที่มีอยู่และในขณะที่สร้างโมดูลใหม่ซึ่งจะช่วยเพิ่มประสิทธิภาพการทำงาน เรียนรู้วิธีสร้างคำสั่ง Drush แบบกำหนดเองในบทความนี้

การติดตั้ง Drupal Console

คอนโซล Drupal สามารถติดตั้งได้ด้วยวิธีต่างๆ เช่น นักแต่งเพลง, curl, phar เป็นต้น นี่คือตัวอย่างการติดตั้งโดยใช้ผู้แต่ง:

ติดตั้งทั่วโลกผ่าน composer

 composer global require drupal/console

การติดตั้งเฉพาะไซต์

1. ไปที่ไซต์ Drupal ใน CLI:

 cd /path/to/drupal_site

2. ดำเนินการผู้แต่งต้องการคำสั่ง:

 composer require drupal/console:~1.0 --prefer-dist --optimize-autoloader

การติดตั้ง Drush

สามารถติดตั้ง Drush ได้หลายวิธี เช่น นักแต่งเพลง curl หรือ phar นี่คือตัวอย่างการติดตั้งโดยใช้ผู้แต่ง:

ติดตั้งทั่วโลกผ่าน composer

 composer global require drush/drush

การติดตั้งเฉพาะไซต์

1. ไปที่ไซต์ Drupal ใน CLI:

 cd /path/to/drupal_site

2. ดำเนินการผู้แต่งต้องการคำสั่ง:

 composer require drush/drush

คำสั่งและการใช้งานคอนโซล Drupal

ตรวจสอบคำสั่ง Drupal Console ที่ได้รับความนิยมและเป็นประโยชน์มากที่สุดและเมื่อใดที่สามารถใช้งานได้

  • คำสั่งดีบัก Drupal

  • เพื่อระบุเบรกพอยต์ขณะทำงานกับธีม:
 drupal debug:breakpoints {theme_name}

ตัวอย่าง: การดีบัก drupal:เบรกพอยต์ bartik

  • วิธีค้นหาคลาสและชื่อของบริการอย่างง่ายดายเมื่อทำงานกับบริการ:
 drupal debug:config:settings
  • เพื่อระบุจุดล้มเหลวเมื่อคุณมีบล็อกที่เสียหาย:
 drupal debug:plugin block broken
  • สร้างโมดูลที่กำหนดเอง

สร้างโมดูลที่กำหนดเองภายในหนึ่งนาทีโดยใช้คำสั่งนี้:

 drupal generate:module \ --module="modulename" \ --machine-name="modulename" \ --module-path="/modules/custom" \ --description="My Awesome Module" \ --core="8.x" \ --package="Custom" \ --module-file \ --composer \ --test \ --twigtemplate
  • สร้างแบบฟอร์มที่กำหนดเอง

ข้อกำหนดของแบบฟอร์มที่กำหนดเองนั้นพบได้ทั่วไปในโปรเจ็กต์ต่างๆ สร้างแบบฟอร์มที่กำหนดเองได้อย่างง่ายดายด้วยคำสั่งนี้:

 drupal generate:form \ --module="modulename" \ --class="DefaultForm" \ --form- \ --config-file \ --path="/modulename/form/default"
  • สร้างแบบฟอร์มการกำหนดค่า

เช่นเดียวกับแบบฟอร์มที่กำหนดเอง เรากำหนดให้ผู้ดูแลระบบกำหนดค่าแบบฟอร์มด้วย ด้วยคำสั่งนี้ คุณสามารถสร้างได้อย่างง่ายดาย:

 drupal generate:form:config \ --module="modulename" \ --class="DefaultForm" \ --form- \ --config-file \ --path="/modulename/form/default"
  • สร้างตัวควบคุม

ด้วยแบบฟอร์มที่กำหนดเอง คุณจะต้องมีตัวควบคุม คุณสามารถสร้างตัวควบคุมแบบกำหนดเองได้อย่างง่ายดายด้วยคำสั่งนี้:

 drupal generate:controller \ --module="modulename" \ --class="DefaultController" \ --routes='"title":"ControllerMethod", "name":"modulename.default_controller_hello", "method":"hello", "path":"/modulename/hello/{name}"' \ --test
  • สร้างเอนทิตีแบบกำหนดเอง

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

 drupal generate:entity:content \ --module="modulename" \ --entity-class="DefaultEntity" \ --entity-name="default_entity" \ --base-path="/admin/structure" \ --label="Default entity" \ --is-translatable \ --revisionable --has-forms
  • สร้างบริการที่กำหนดเอง

คำสั่งนี้ช่วยให้คุณสร้างบริการที่กำหนดเอง:

 drupal generate:service \ --module="modulename" \ --name="modulename.default" \ --class="DefaultService" \ --interface \ --interface-name="InterfaceName" \ --path-service="/modules/custom/modulename/src/"
  • สร้างเนื้อหาเหมือน user:create

ในการสร้างผู้ใช้จากส่วนหลัง คุณไม่จำเป็นต้องเปิดเบราว์เซอร์และเข้าสู่ระบบด้วยผู้ดูแลระบบ จากนั้นจึงสร้างบัญชี เพียงใช้คำสั่งนี้เพื่อสร้างผู้ใช้ในระยะเวลาอันสั้น:

 drupal user:create username password \ --roles='authenticated' \ --email="[email protected]" \ --status="1"
  • สร้างปลั๊กอินเหมือนบล็อก

Drupal Console ยังสามารถสร้างปลั๊กอินได้มากมาย เช่น บล็อก นี่คือตัวอย่างการสร้างบล็อกแบบกำหนดเอง:

 drupal generate:plugin:block \ --module="modulename" \ --class="DefaultBlock" \ --label="Default block" \ --plugin- \ --theme-region="header" \ --inputs='"name":"inputtext", "type":"text_format", "label":"InputText", "options":"", "description":"Just an input text", "maxlength":"", "size":"", "default_value":"", "weight":"0", "fieldset":""'

สำหรับคำสั่งคอนโซลและการใช้งาน Drupal เพิ่มเติม ให้ตรวจสอบคำสั่งที่พร้อมใช้งานเหล่านี้

คำสั่ง Drush ยอดนิยม

ดรัช cr เพื่อสร้าง Drupal cache ใหม่
drush cim ในการนำเข้าไฟล์การกำหนดค่าทั้งหมด
ดรัช cex ในการส่งออกไฟล์การกำหนดค่า
drush uli เข้าสู่ระบบโดยใช้ url เข้าสู่ระบบแบบครั้งเดียว
รัช en {module_name} เปิดใช้งานโมดูลใด ๆ ทั้งแบบกำหนดเองหรือ contrib หรือ core
drush pmu {module_name} ปิดการใช้งานและถอนการติดตั้งโมดูลใด ๆ
drush pm: รายการ แสดงรายการโมดูลทั้งหมดที่มีแพ็กเกจ ชื่อโมดูล เวอร์ชันและสถานะ
drush updb ในการอัพเดทฐานข้อมูลหลังจากอัพเกรด
สุนัขเฝ้าบ้าน:list(ws) แสดงรายการข้อความเฝ้าระวังทั้งหมด
สุนัขเฝ้าบ้าน:หาง(wt) ข้อความเฝ้าระวังหางอย่างต่อเนื่อง
สุนัขเฝ้าบ้าน:หาง --type=php ข้อความเฝ้าระวังหางต่อเนื่องที่มีประเภทความรุนแรงโดยเฉพาะ

คำสั่ง Drush ที่ยอดเยี่ยมอีกสองสามคำ

สถานะมึนงง ให้ภาพรวมของการติดตั้ง Drupal ปัจจุบัน
drush สร้าง เช่นเดียวกับ Drupal Console คำสั่ง drush create ช่วยในการสร้างเอนทิตี ปลั๊กอิน และอื่นๆ
drush pm: ความปลอดภัย เพื่อตรวจสอบแพ็คเกจผู้แต่ง Drupal สำหรับการอัพเดทความปลอดภัย
drush migrate:สถานะ แสดงรายการการย้ายทั้งหมดที่มีสถานะปัจจุบัน
ผู้ใช้ drush:รหัสผ่าน {ชื่อผู้ใช้} {รหัสผ่าน} ตั้งรหัสผ่านผู้ใช้
ผู้ใช้ drush:block ช่วยบล็อคผู้ใช้
ผู้ใช้ drush:role:add ช่วยเพิ่มบทบาทของผู้ใช้
drush sql-dump ส่งออกฐานข้อมูล Drupal เป็น SQL โดยใช้ mysqldump หรือเทียบเท่า