Wordpress กับ Git


21

ฉันถามคำถามนี้เพราะฉันค้นหาบนอินเทอร์เน็ต แต่หาทางออกไม่ได้ ที่จริงฉันต้องการทางออกที่นักพัฒนาหลายคนสามารถทำงานในโครงการ wordpress เดียวโดยไม่ต้องสร้างความยุ่งเหยิงในงานอื่น ๆ แต่อย่างที่เรารู้ว่าใน wordpress ทุกสิ่งได้รับการบำรุงรักษาในฐานข้อมูลเช่นปลั๊กอินที่ใช้งานอยู่

หากนักพัฒนาติดตั้งปลั๊กอินไปยังโครงการท้องถิ่นของพวกเขามากกว่าวิธีที่พวกเขาสื่อสารกับแต่ละอื่น ๆ ที่ทุกคนควรติดตั้งปลั๊กอินหรือปลั๊กอินนั้น ๆ และการสื่อสารผิดพลาดบางอย่างสามารถทำลายเว็บไซต์ของผู้อื่นได้หากนักพัฒนาซอฟต์แวร์ทุกคนผลัก / ดึงรหัส

เราควรแบ่งปันฐานข้อมูลด้วยเพื่อแชร์การตั้งค่าปลั๊กอิน / ธีมเพื่อไม่ให้มีข้อขัดแย้งหรือข้อขัดแย้งเล็กน้อยระหว่างนักพัฒนา

ขอบคุณ


5
wp-cli.orgจะช่วยให้ขั้นตอนการทำงานของคุณค่อนข้างน้อย
jgraup

1
หากเป็นไปได้ให้เปลี่ยนเป็น jekyll หรือคล้ายกัน
Jens Schauder

Jekyll ถูกอบเข้าสู่ GitHub ซึ่งเห็นได้ชัดว่าทำงานได้ดีกับ git ...
DaveRGP

FWIW การชนและความขัดแย้งไม่ได้ถูกลบออกอย่างสมบูรณ์เมื่อใช้บางอย่างเช่น Git มันจะช่วยให้คุณพูดความขัดแย้งออกไปจนกว่าคุณจะพร้อมที่จะ "ผสาน" พวกเขา

1
นักพัฒนาทั้งหมดสามารถแชร์ฐานข้อมูลทั่วไปที่โฮสต์และเปิดเผยต่อ GIT เพื่อควบคุมเวอร์ชันได้หรือไม่
MonkeyZeus

คำตอบ:


18

Git สำหรับปลั๊กอิน :

จากนั้นใช้ Git เพื่อจัดการcomposer.jsonและการเปลี่ยนแปลงในปลั๊กอิน TGM

ส่วนที่ยากที่สุดคือการซิงค์ฐานข้อมูล :

แน่นอนเราควรแบ่งปันฐานข้อมูล กำหนดค่าการตั้งค่าปลั๊กอิน / ตัวเลือกใหม่ไม่ใช่ความคิดที่ดี

มีปลั๊กอินมากมายทั้งฟรีและพรีเมียมซึ่งสามารถช่วยได้

หากคุณต้องการลองทำบางสิ่งด้วยตนเองรวมwp-cliกับคำตอบของ @Wyck


8

ทีมของฉันประสบปัญหาคล้ายกัน เราใช้ git เพื่อสร้างโค้ดที่เรากำหนดเองเช่นปลั๊กอินและธีมที่เราเขียน เราใช้นักแต่งเพลงเพื่อจัดการการพึ่งพาเช่นปลั๊กอินที่เราไม่ได้เขียน เราตรวจสอบไฟล์ composer.json และ composer.lock เป็น git เพื่อให้ทุกคนซิงค์กัน นักพัฒนาซอฟต์แวร์แต่ละคนคาดว่าจะดึงสาขาหลัก git และทำงานcomposer updateบน playpens ของพวกเขาบ่อยครั้งเพื่อให้ทุกคนยังคงทันสมัย

ในฐานข้อมูลผู้พัฒนาส่วนใหญ่สนใจเกี่ยวกับการกำหนดค่าและเรามักจะใช้WP-CLIเพื่อให้การกำหนดค่าในการซิงค์ ตัวอย่างเช่นเรามีเชลล์สคริปต์ที่รันคำสั่ง WP-CLI เพื่อเปิดใช้งานหรือปิดใช้งานปลั๊กอินในแต่ละโฮสต์ ปลั๊กอินบางตัวจะใช้กับโฮสต์การจัดเตรียมเนื้อหาของเราเท่านั้นดังนั้นสคริปต์สามารถทำงานบนโฮสต์ใด ๆ และจะเปิดใช้งานการตั้งค่าที่เหมาะสมบนโฮสต์นั้นเท่านั้น การกำหนดค่าบางอย่างที่ใช้เวลานานเกินไปในการเขียนสคริปต์นั้นเป็นเพียงเอกสารและทำซ้ำด้วยตนเองหากจำเป็น

นอกจากนี้เรายังมีสคริปต์ perl ที่จะโคลนฐานข้อมูลจากเซิร์ฟเวอร์ staging เนื้อหาของเราไปยัง QA หรือโฮสต์ dev อย่างสมบูรณ์ ผู้พัฒนาสามารถใช้สิ่งนี้เป็นระยะหากพวกเขาต้องการเนื้อหาปัจจุบันทั้งหมด แต่โดยทั่วไปนั้นสำคัญน้อยกว่าการมีรหัสและการกำหนดค่า สคริปต์ทำงานเหล่านี้:

  • การถ่ายโอนข้อมูล mySQL ของฐานข้อมูลเซิร์ฟเวอร์ staging เนื้อหาเปลี่ยนชื่อตารางโหลดลงในฐานข้อมูลของเซิร์ฟเวอร์เป้าหมาย
  • ใช้ wp-cli เพื่อเปลี่ยนการอ้างอิงไปยังเซิร์ฟเวอร์ staging ภายในฐานข้อมูลเพื่ออ้างถึงเซิร์ฟเวอร์เป้าหมาย
  • ซิงค์ไดเรกทอรีอัพโหลดบนเซิร์ฟเวอร์เป้าหมายด้วยการอัปโหลดเซิร์ฟเวอร์เนื้อหาชั่วคราว

มีโซลูชันที่มีแนวโน้มสำหรับการกำหนดเวอร์ชันฐานข้อมูลที่กำลังมาอย่างรวดเร็ว VersionPressและMergebotเป็นสองสิ่งที่ฉันรู้และอาจมีบางอย่าง

ฉันเขียนรายละเอียดทางเทคนิคเพิ่มเติมเกี่ยวกับวิธีที่เราตั้งค่า WordPress ให้ทำงานกับ git และนักแต่งเพลงในบล็อกของฉัน จำเป็นต้องใช้กับ WordPress core ในไดเรกทอรีของตัวเองเพื่อทำการแยกอย่างชัดเจนระหว่างรหัสที่เราต้องการรักษาใน git และ WordPress core เราปฏิบัติต่อ WordPress เองว่าเป็นการพึ่งพาและจัดการมันด้วย Composer


7

ทางออกที่ดีที่สุดที่ฉันเคยเห็นคือการใช้ Bedrock ( https://roots.io/bedrock/ )

คำตอบอื่น ๆ สำหรับคำถามนี้ (ผู้แต่งและสิ่งที่ต้องจัดการกับปลั๊กอินของคุณ) คือคำตอบที่ดี แต่ Bedrock จัดให้มีระบบที่ได้รับการสนับสนุนจัดทำเอกสารและปรับปรุงวิธีการทำอย่างต่อเนื่อง

นอกจากนี้อย่าลืมว่าคุณสามารถมี repo git ได้มากกว่าหนึ่งรายการ - หนึ่งสำหรับธีมของคุณหนึ่งรายการสำหรับปลั๊กอินที่กำหนดเองแต่ละรายการที่คุณพัฒนาจากนั้นหนึ่ง 'master' หนึ่งรายการสำหรับการติดตั้ง Bedrock / Wordpress


"Bedrock จัดให้มีระบบที่ได้รับการสนับสนุนจัดทำเอกสารและปรับปรุงวิธีการทำอย่างต่อเนื่องซึ่งเหมาะสำหรับการกลิ้งของคุณเอง" สามารถยืนยันข้อเท็จจริงได้ดีมาก! ใช้กับ Sage (พัฒนาโดยคนเดียวกัน, รูท) และการพัฒนาที่กำหนดเองในทีมสามารถจัดการได้อย่างเหมาะสม ยังมีอาการสะอึกอยู่และคำตอบ @ Dan9 นั้นสมบูรณ์กว่า แต่ฉันร้องเพลงสรรเสริญของ Bedrock ไม่พอ!
237 samrap

ในฐานะนักพัฒนา MVC ฉันเห็นด้วย แต่ประเภทของงานที่ฉันทำกับเว็บไซต์ WordPress เป็นส่วนหน้าอย่างมากดังนั้นการตั้งค่าการจัดการสินทรัพย์ใน Sage จึงคุ้มค่ากับการใช้งานที่ไม่ดีของโลกในบางโอกาส
234 samrap

0

หากจำเป็นอย่างยิ่งที่คุณต้องติดตั้งปลั๊กอินตัวเดียวกันทั้งหมดที่ทำงานกับธีมหรือปลั๊กอินที่กำหนดเองดังนั้นฉันจะแบ่งปันฐานข้อมูลด้วย

เราใช้คอมไพล์และนักแต่งเพลงเพื่อให้สภาพแวดล้อมการพัฒนาที่แตกต่างกันอยู่เสมอ เพียงแค่ดึงการเปลี่ยนแปลงล่าสุดและเรียกใช้ผู้แต่งใหม่และคุณพร้อมแล้วที่จะไป


0

ก่อนอื่นเราต้องเข้าใจโครงสร้างไดเรกทอรี WordPress โครงสร้างไดเรกทอรี WordPress นั้นเป็นมิตรกับผู้ใช้gitไม่ได้ ดังนั้นฉันขอแนะนำให้คุณใช้สิ่งนี้กับgitสถาปัตยกรรมที่ค่อนข้างเป็นมิตร ไม่ไม่ต้องตกใจ คุณไม่จำเป็นต้องสร้างสิ่งนี้ มีจำนวนมากของประเภทสำเร็จรูปหรือระบบ WordPress โครงสร้างออกมี เพียงเลือกหนึ่งในนั้นและเริ่มการเข้ารหัส

ตอนนี้มาถึงจุดของการเขียนรหัสจัดดีหรือรหัส maitainable เราจริงใส่รหัสของเราได้ที่หรือwp-content\themes\your-theme wp-content\themes\your-themeดังนั้นในส่วนของgitเวิร์ดเพรสสำเร็จรูป WordPress ที่เป็นมิตรwp-contentส่วนนั้นจะแยกจากกัน และพวกเขาส่วนใหญ่ดึง WordPress repo composerผ่าน มันทำให้โครงการเต็มรูปแบบสะอาดขึ้นมาก

การซิงค์ปลั๊กอินเป็นอีกส่วนที่สำคัญ composerมันจะดีกว่าถ้าคุณติดตั้งปลั๊กอินของคุณผ่านทาง มันทำให้รหัสโครงการสะอาดขึ้นมาก ที่นี่คุณจะได้รับภาพรวมวิธีการติดตั้งปลั๊กอิน WordPress composerผ่าน

ตอนนี้มาถึงส่วนที่สำคัญที่สุดวิธีการซิงค์ฐานข้อมูล ฉันคิดว่ามันสามารถทำได้ง่ายกว่าใน 2 วิธี -

  • นักพัฒนาทั้งหมดควรใช้ฐานข้อมูลระยะไกลเดียว และบ่อยครั้งที่สร้างสำเนาสำรองของมัน
  • ทำให้การส่งออกการนำเข้าของ WordPress เป็นไปโดยอัตโนมัติ ดูเหมือนจะซับซ้อน แต่ก็ไม่ได้ เพียงทำ google หวังว่าคุณจะทำได้

หวังว่าจะช่วยคุณ

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