ใครช่วยกรุณาแจ้งให้เราทราบวิธีการขยายคลาสคำสั่ง drush ที่มีอยู่
ฉันกำลังเขียนโมดูลที่กำหนดเองซึ่งมีเอนทิตีเนื้อหาที่กำหนดเองและสร้างปลั๊กอินสร้าง devel ที่คล้ายกับ ContentDevelสร้าง.
มันทำงานตามที่คาดไว้เพื่อสร้างเนื้อหาจำลองจาก UI ฉันต้องการสร้างคำสั่ง drush สำหรับปลั๊กอินตัวสร้าง devel ด้วย คล้ายกับ คำสั่ง DevelGenerate วิธีการเนื้อหา ฉันต้องการเพิ่มวิธีการเพิ่มเติมเพื่อสร้างเอนทิตีเนื้อหาที่กำหนดเองของฉัน
คลาสคำสั่ง drush ของฉันเป็นดังนี้:
<?php
เนมสเปซ Drupal\omdb_api\Commands;
ใช้ Drupal\devel_generate\Commands\DevelGenerateCommands;
/**
* คลาสเพื่อสร้างคำสั่ง drush เอนทิตี omdb api
*/
คลาส OmdbApiEntityDevelGenerateCommands ขยาย DevelGenerateCommands {
/**
* สร้างรายการเอนทิตี omdb api โดยคำสั่ง drush
*
* @command devel-generate:omdb-api
* @นามแฝง dgen:omdb-api, devel-generate-omdb-api
* @pluginId omdb_api_entity_devel_generate
* @validate-module-enabled omdb_api
*
* @param int $num
* จำนวนรายการเอนทิตี omdb api ที่จะสร้าง
* ตัวเลือก @param อาร์เรย์ $
* อาร์เรย์ของตัวเลือกตามที่อธิบายไว้ด้านล่าง
*
* @option kill ลบรายการเอนทิตี omdb api ทั้งหมดก่อนที่จะสร้างเอนทิตี omdb api ใหม่
* @option feedback จำนวนเต็มแสดงช่วงเวลาสำหรับการบันทึกอัตราการแทรก
* @option ข้ามฟิลด์ รายการฟิลด์ที่คั่นด้วยเครื่องหมายจุลภาคที่จะละเว้นเมื่อสร้างค่าสุ่ม
* @option language รายการรหัสภาษาที่คั่นด้วยเครื่องหมายจุลภาค
*/
ฟังก์ชั่นสาธารณะ omdbApiEntities ($num = 50, array $options = ['kill' => FALSE, 'feedback' => 1,000]) {
$this->generate();
}
/**
* Wrapper สำหรับการเรียกใช้ฟังก์ชันสร้างอินสแตนซ์ของปลั๊กอิน
*/
ฟังก์ชั่นสาธารณะสร้าง () {
$instance = $this->getPluginInstance();
$instance->generate($this->getParameters());
}
}
OmdbApiEntityDevelGenerateCommands ถ้าฉันวางวิธีนี้โดยตรงใน คำสั่ง DevelGenerate class คำสั่งทำงานตามที่คาดไว้ ดูเหมือนว่าฉันขาดบางสิ่งที่จะขยาย คำสั่ง DevelGenerate ระดับ.
# drush.services.yml
บริการ:
omdb_api.devel_generate_commands:
คลาส: \Drupal\omdb_api\Commands\OmdbApiEntityDevelGenerateCommands
แท็ก:
- { ชื่อ: develgenerate.command }