Score:0

drush กำหนด PROJECTROOT และ WEBROOT สำหรับโครงการได้อย่างไร

ธง ph

ใน การกำหนดค่า Drush ส่วนของเอกสารอย่างเป็นทางการกล่าวว่า:

ไฟล์ drush.yml ถูกค้นพบดังต่อไปนี้ ตามลำดับความสำคัญ:

  1. โฟลเดอร์ไซต์ Drupal (เช่น sites/{example.com}/drush.yml)
  2. ไซต์/ทั้งหมด/drush, WEBROOT/drush หรือ PROJECTROOT/drush
  3. ...

คุณจะเห็น "WEBROOT" และ "PROJECTROOT" ที่นั่น แต่ไม่มีคำอธิบายว่ามันคืออะไร ใน Drush code ไม่มีการกล่าวถึงนอกเหนือจากการกำหนดค่าเอง:

$ grep PROJECTROOT * -r
drush/docs/using-drush-configuration.md:2. `sites/all/drush`, `WEBROOT/drush` หรือ `PROJECTROOT/drush`                                                                                                                                

$ grep WEBROOT * -r 
drush/docs/using-drush-configuration.md:2. `sites/all/drush`, `WEBROOT/drush` หรือ `PROJECTROOT/drush`                 

Drush กำหนดค่าของ PROJECTROOT และ WEBROOT อย่างไร

คำถามคือความหมายของชื่อเหล่านั้น แต่ Drush ตัดสินใจได้อย่างไรว่าชื่อเหล่านี้คืออะไร หากใช้เพื่อค้นหาไฟล์การกำหนดค่าต่างๆ หมายความว่า Drush แก้ไขชื่อเหล่านั้นเป็นโฟลเดอร์หรือพาธจริงในระบบปัจจุบัน Drush แก้ปัญหาได้อย่างไร

ฉันเดาว่า Drush ใช้โฟลเดอร์รูทของไซต์ (กำหนด ion หรือนามแฝง Drush หากโฟลเดอร์นั้นเป็นรูทของ Drupal ดังนั้น WEBROOT และ PROJECTROOT จะเหมือนกัน แสดงว่าเป็นโฟลเดอร์รูทที่กำหนดไว้ หากโฟลเดอร์รูทที่กำหนดค่าไว้มี ผู้แต่ง.json และ ก เว็บ โฟลเดอร์ จากนั้น PROJECTROOT เป็นพาธรูทที่กำหนดค่าไว้ และไฟล์ เว็บ โฟลเดอร์คือ WEBROOT... แต่เป็นเพียงการคาดเดา

cn flag
ฉันคิดว่ามันหมายถึงโฟลเดอร์รูทของโปรเจ็กต์ของคุณเทียบกับโฟลเดอร์ในโปรเจ็กต์ที่มีเว็บรูท
sanzante avatar
ph flag
ใช่ นั่นเป็นความจริง แต่ Drush รู้ได้อย่างไร? ในการกำหนดค่านามแฝง คุณกำหนดเส้นทางรูท นั่นอาจเป็นเว็บรูท แต่นั่นไม่เป็นความจริง เพราะคุณสามารถชี้ไปที่โฟลเดอร์ที่มีไฟล์ Composer.json ฉันเดาว่า Drush ฉลาดพอที่จะตรวจสอบว่าค่าการกำหนดค่ารูทนั้นเป็นรูทของ drupal หรือไม่ (ในกรณีนั้น WEBROOT และ PROJECTROOT คือโฟลเดอร์นั้น) หรือเป็นโครงร่างสำเร็จรูปเหมือนกับที่สร้างโดย `composer create-project' ดังนั้นโฟลเดอร์ที่มีผู้แต่ง json คือ PROJECTROOT และโฟลเดอร์เว็บคือ WEBROOT... แต่ฉันต้องการคำยืนยัน
cn flag
ใช่ drush ฉลาดพอที่จะสำรวจโครงสร้างโฟลเดอร์จนกว่าจะพบสิ่งที่ระบุว่าเป็นรูทของโปรเจ็กต์ Drupal (คุณต้องดูโค้ดเพื่อรับเกณฑ์ที่แน่นอน) คล้ายกับวิธีการทำงานของ Git, Composer และเครื่องมืออื่นๆ
Score:3
ธง in

การใช้ Drush เว็บโฟลว์ / drupal-finder เพื่อกำหนดไดเร็กทอรีเหล่านี้ ตรรกะอยู่ใน DrupalFinder::findAndValidateRoots()

WEBROOT เป็นโฟลเดอร์รูทของ Drupal และ PROJECTROOT เป็นโฟลเดอร์ที่วางไฟล์ Composer.json

DrupalFinder ถูกใช้ในหลายแห่ง แต่ส่วนที่น่าสนใจคือฟังก์ชัน Preflight::setSelectedSite

มี Drush ค้นหา "Drupal Root" และ "Composer Root" "Drupal Root" คือ... โฟลเดอร์ Drupal Root และสิ่งที่เอกสาร Drush เรียกว่า WEBROOT และ "Composer Root" คือโฟลเดอร์ที่มีไฟล์ composer.json อยู่ และเป็นสิ่งที่เอกสารเรียกว่า PROJECTROOT

sanzante avatar
ph flag
ใช่ ฉันเข้าใจแล้ว คำถามนี้เกี่ยวกับวิธีที่ Drush กำหนดค่าสำหรับโฟลเดอร์เหล่านั้น ฉันได้อัปเดตคำถามของฉันแล้ว
sonfd avatar
in flag
อัปเดต @sanzante
sanzante avatar
ph flag
ขอบคุณ! นั่นคือสิ่งที่ฉันกำลังมองหา! ฉันกำลังอัปเดตคำถามด้วยสิ่งที่ค้นพบ
Score:0
ธง de

When you download Drupal using Composer, you get directory (folder) with some files. This is the project root, as it is the top-level of the entire project.

However, when viewing a Drupal site through a browser, you are not viewing the project root, rather, you are viewing one directory below it; by default, this folder is called /web (though it can be changed in composer.json). The web folder is the webroot, as it is the top-level folder that is viewed when accessing the project through the web.

sanzante avatar
ph flag
นั่นคือคำจำกัดความมาตรฐานของรูทเว็บและรูทโปรเจ็กต์ ฉันรู้แล้วว่า สิ่งที่ฉันถามคือวิธีที่ Drush กำหนดค่าของ WEBROOT และ PROJECTROOT ไม่ใช่คำจำกัดความทั่วไปของเว็บและโปรเจ็กต์รูทในบริบทของโปรเจ็กต์เว็บ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา