คุณใช้กระบวนการอะไรในการพัฒนา WordPress [ปิด]


38

ฉันสนใจที่คนอื่นจะพัฒนาธีมและปลั๊กอินสำหรับ WordPress สำหรับฉันแล้วเครื่องมือแก้ไขในเบราว์เซอร์ในแผงควบคุมจะไม่ตัดมัน ขณะนี้ฉันเพิ่งใช้ IDE กับปลั๊กอิน PHP (NetBeans) ดึงเว็บไดเรกทอรีการพัฒนาของฉันจากเซิร์ฟเวอร์ของฉันแก้ไขที่นั่นผลักดันเพื่อทดสอบแล้วย้ายไปใช้ชีวิต

ฉันกำลังมองหาวิธีที่คนอื่นใช้เครื่องมือที่พวกเขาเลือกเพื่อจัดการเวิร์กโฟลว์สำหรับการพัฒนาทดสอบและปรับใช้ธีมปลั๊กอินและทดสอบเวิร์ดเพรสเวอร์ชันล่าสุดก่อนหน้านี้

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

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


คุณอาจจะ. คำถามที่คล้ายกันได้ทำไปแล้วเมื่อ: wordpress.stackexchange.com/questions/324/…
Tal Galili

คำตอบ:


20

สำหรับการบันทึกนั้นส่วนใหญ่ฉันจะสร้างเว็บไซต์และปลั๊กอินทั้งหมดและปรับใช้ เวิร์กโฟลว์ของฉันเป็นทับทิมและ git-heavy มาก

ในการเริ่มต้นโครงการใหม่ฉันมีเชลล์สคริปต์ที่ดูแลธุรกิจทั้งหมดของการตั้งค่า vhost ใหม่และตรวจสอบแท็กล่าสุดของ WordPress (จากที่เก็บ git ของเราเองซึ่งติดตาม svn)

รูปร่างพื้นฐานของเว็บไซต์ทั้งหมดเป็น repsotory คอมไพล์ที่ wp-content ที่มี Capfile (Makefile eqiuivalent ของ capistrano) และไฟล์การกำหนดค่า YAML ซึ่งดูแลการปรับใช้ (ร่วมกันhttp://github.com/dxw/wp-capistrano ) นอกจากนี้ภายในที่เก็บฉันยังเพิ่มธีมและปลั๊กอินเป็นโมดูลย่อย git (ใช่เรารักษาที่เก็บ git สำหรับปลั๊กอินของบุคคลที่สามด้วย - เราชอบที่จะใช้เวอร์ชันล่าสุดที่เราทดสอบด้วยตนเอง)

สำหรับชุดรูปแบบฉันมีเครื่องมือ / กรอบการสร้างโค้ด ( github.com/dxw/wp-generate ) มันหมายถึงการคิดน้อยลงเกี่ยวกับตำแหน่งที่รหัสควรไปและมีวิธีการแยกระหว่าง View และ Model / Controller อย่างเป็นธรรมชาติ

เมื่อเขียนปลั๊กอินผมใช้แตงกวา / webrat จะทำทดสอบขับเคลื่อนการพัฒนา ( github.com/dxw/cucumber-wordpress )

และสำหรับการย้ายฐานข้อมูลการพัฒนาไปสู่การผลิตมักจะเป็นเพียงกรณีของการคัดลอกดัมพ์ผ่าน (WP_SITEURL และ WP_HOME ถูกกำหนดโดย capistrano บนเครื่อง staging / production ดังนั้นจึงไม่มีการค้นหา / แทนที่)

ฉันจินตนาการไม่ออกเลยว่าฉันได้บันทึกสคริปต์เหล่านี้กี่ชั่วโมง


ขอขอบคุณเป็นพิเศษสำหรับลิงค์ แต่คุณไม่มีสถานการณ์ที่คุณไม่สามารถสูญเสียเนื้อหาของฐานข้อมูลการผลิตหรือไม่ ฉันไม่ได้คิดวิธีการทำงานยกเว้นโดยการเลือกตารางที่จะโหลดด้วยมือและแม้กระทั่งฉันต้องทำซ้ำรายการเมนู
Daniel C. Sobral

6

@Thomas Owensคำถามนี้ค่อนข้างทับซ้อนและซ้ำซ้อนกับคำถาม " ซอฟต์แวร์สำหรับการพัฒนาธีม / ปลั๊กอิน WordPress? " ไม่แน่ใจว่าเราควรปิดหรือไม่ แต่ดูเหมือนว่าจะโฟกัสแตกต่างกันเล็กน้อย ดังนั้น...

Mac OS X

นี่คือชุดเครื่องมือสำคัญของฉันในตอนนี้สำหรับ Max OS X (มองหาดีกว่าเสมอ) หมายเหตุฉันลองใช้ NetBeans และเลิกใช้แล้ว คุณสมบัติซบเซาและน้อยเกินไป

  • PhpStorm + XDEBUG - การดีบัก IDE (ไม่มีอะไรดีกว่าบน MAC)
  • VirtualHostX - บริหารจัดการ Apache โฮสต์เสมือนเฉพาะ (ฉันรักนี้)
  • FileZilla - ไคลเอนต์ FTP
  • Firefox Firebug - การแก้จุดบกพร่อง jQuery
  • Navicat สำหรับ MySQL - ลูกค้า MySQL เชิงพาณิชย์
  • Unfuddle.com - พื้นที่เก็บข้อมูล SVN และการจัดการงานสำหรับโครงการของลูกค้า
  • HTTP Scoop - ดีบัก HTTP ที่สมเหตุสมผล
  • Fraise - เครื่องมือแก้ไขข้อความที่มีน้ำหนักเบา (Fork of Smultron )

Windows Vista

เมื่อฉันอยู่บน Windows Vista ชุดเครื่องมือที่สำคัญของฉันคือ:

  • FileZilla - ไคลเอนต์ FTP
  • Firefox Firebug - การแก้จุดบกพร่อง jQuery
  • Navicat สำหรับ MySQL - ลูกค้า MySQL เชิงพาณิชย์
  • Unfuddle.com - พื้นที่เก็บข้อมูล SVN และการจัดการงานสำหรับโครงการของลูกค้า
  • PhpED - การดีบัก IDE (ไม่มีอะไรดีไปกว่าใน Windows 'อาจจะเป็นPhpStorm + [XDEBUG] [24])
  • HeidiSQL - ไคลเอนต์ MySQL โอเพ่นซอร์สที่ยอดเยี่ยม
  • Notepad2 - ทางเลือก Notepad ที่มีน้ำหนักเบาและใช้งานได้ดี
  • TortoiseSVN - ลูกค้า SVN
  • Fiddler 2 - ดีบักเกอร์ HTTP ที่เหนือชั้น

การปรับใช้รหัส / การโยกย้ายข้อมูลเพื่อสลับโดเมน

ไม่แน่ใจว่าสิ่งนี้เป็นสิ่งที่คุณต้องการอย่างแน่นอน แต่ฉันพัฒนาปลั๊กอินเพื่อลดความยุ่งยากในการย้ายข้อมูลระหว่างเซิร์ฟเวอร์ dev ในเครื่องเซิร์ฟเวอร์ทดสอบและเซิร์ฟเวอร์การปรับใช้ ฉันเขียนเกี่ยวกับที่นี่:

หวังว่านี่จะช่วยได้

-Mike


5

นี่เป็นคำตอบของเวิร์กโฟลว์ไม่ใช่เฉพาะกับ IDE หรือปลั๊กอิน

วิธีแก้ปัญหาที่ใช้งานได้ดีสำหรับการพัฒนาปลั๊กอินคือการเริ่มต้นด้วยเว็บเซิร์ฟเวอร์ apache ในเครื่องพร้อมกับเวิร์ดเพรสแต่ละรูปแบบที่ติดตั้งในโฟลเดอร์ย่อย

ในสถานที่แยกต่างหากนอกรูทเซิร์ฟเวอร์ภายในให้เก็บสำเนา wordpress plugin / theme ของคุณไว้ สร้าง symlink ให้กับ trunk / tag / branch ที่เหมาะสมในโฟลเดอร์ / wp-content / plugins ของ wordpress แต่ละรูปแบบ

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

เป็นหลักคุณสามารถเปิดแท็บเบราว์เซอร์สำหรับแต่ละรูปแบบ wordpress ท้องถิ่นและทดสอบแต่ละรายการในขณะที่ทำงานในโครงการเดียวและฐานไฟล์เดียว

การใช้ IDE ที่สนับสนุน SVN & FTP สิ่งที่คุณต้องทำคือแก้ไขสำเนาการทำงานของคุณและส่งการเปลี่ยนแปลงกลับไปยังที่เก็บ

ในฐานะที่เป็น IDE Coda ทำเพื่อฉัน แต่ฉันชอบ NetBeans และ Eclipse เช่นกัน

เมื่อคุณมีความสุขที่ปลั๊กอินของคุณใช้งานได้และคุณได้ยอมรับการเปลี่ยนแปลงเหล่านั้นกับที่เก็บของคุณคุณสามารถเปิดโครงการเวิร์ดเพรสของคุณและเผยแพร่ปลั๊กอินที่เปลี่ยนแปลงไปยังไซต์สดของคุณโดยตรง


3

ฉันมีการตั้งค่าที่ไม่ซับซ้อนซึ่งพัฒนามาตั้งแต่เริ่มงานวันปัจจุบันของฉัน ~ 2.5 ปีที่แล้ว

ที่กำลังพัฒนา

ฉันทำทุกการพัฒนาของฉันผ่าน SSH ใช้เป็นกลุ่มภายในหน้าจอ GNU ปลั๊กอินเป็นกลุ่มรวมถึง:

แยกแนวตั้งและ:set hiddenมีความจำเป็น ฉันชอบเทอร์มินัลสี 256 สี ( iTermบน Mac OS X) ด้วยโครงร่างสีรถไฟ

เราได้ทำการปรับเปลี่ยนdBugอย่างช้าๆเพื่อให้เหมาะกับความต้องการของเรา การแทนที่ที่ดีสำหรับprint_r()และvar_dump()เมื่อคุณรู้ว่าตัวแปรเป็นอาร์เรย์หรือวัตถุ

การปรับใช้

ในปัจจุบันฉันไม่ได้ใช้งานปลั๊กอิน / ธีมสาธารณะจำนวนมากดังนั้นฉันจึงไม่ทดสอบความเข้ากันได้กับปลั๊กอินกับ WordPress หลายรุ่น ฉันรหัสบนเซิร์ฟเวอร์ dev และย้ายรหัสนั้นไปยังการผลิตผ่านการโค่นล้ม


คุณจะได้รับ var_dump ที่ดีมากโดยใช้ xdebug การติดตามสแต็ก xdebug ยังสามารถบอกคุณได้ว่าพารามิเตอร์ใดบ้างที่ถูกส่งผ่านไปยังฟังก์ชั่น (ซึ่งมีประโยชน์มาก)
Taras Mankovski

3

กระบวนการพัฒนาธีมของ WordPress

  • แปลง Mock Flow wire wire ให้เป็น XHTML พื้นฐานและ CSS

  • เสียบ XHTML ลงในไฟล์เทมเพลต master.php และแปลงเป็นเทมเพลตแท็กและฟังก์ชั่น WP

  • แบ่ง master.php ลงในไฟล์เทมเพลตต่างๆเช่น: header.php, index.php, sidebar.php และ footer.php

  • เขียนแบบสอบถามและฟังก์ชั่นที่กำหนดเองใด ๆ ที่อาจจำเป็น

  • เสียบเค้าโครง CSS และเพิ่ม div {outline:1px solid red;}เพื่อช่วยปรับแต่ง layout4

  • อัปโหลดโฟลเดอร์ Theme ไปยัง WordPress สำหรับการทดสอบและการพัฒนาเพิ่มเติม

เครื่องมือพัฒนา WordPress

  • ตัวแก้ไขโค้ด Aptana Studio WorkPlace พร้อม FTP ในตัว

  • ผงสำหรับอุดรู

  • จอภาพ 1920 x 1200 คู่พร้อมเบราว์เซอร์ที่เปิดในตัวหนึ่งและตัวแก้ไขโค้ดอีกอัน

  • Wacom Intuis 4 แท็บเล็ต

  • Firebug พร้อมความเร็ว Yslow และ Google Page


3

ขั้นตอนการทำงานของฉันค่อนข้างเรียบง่าย ฉันติดตามสภาพแวดล้อม 4 อย่าง การทดสอบการพัฒนาการจัดเตรียมและการผลิต

ขั้นตอนการทำงาน

ฉันใช้คอมไพล์เพื่อควบคุมการแก้ไข ฉันเพิกเฉยต่อไฟล์ wp-config.php ดังนั้นไฟล์นี้จะไม่ถูกเขียนทับเมื่อฉันกดและดึงข้ามตำแหน่งต่าง ๆ ฉันใช้ unfuddle เป็นที่เก็บสาธารณะ / ส่วนกลางเพื่อให้ผู้อื่นดันและดึง

ดูเหมือนว่าจะทำงานได้ดีพอสมควร ฉันจะทำบ่อยเท่าที่ฉันจำได้ในขณะที่ฉันกำลังทำงานกับการทดสอบ อย่างน้อยวันละครั้งถ้าไม่มากกว่านี้ฉันจะซิงค์กับการแยกและให้เซิร์ฟเวอร์การพัฒนาดึงการเปลี่ยนแปลง ฉันพยายามไม่ทำงานโดยตรงบนเซิร์ฟเวอร์ดังนั้นฉันจึงดึงการเปลี่ยนแปลงเป็นส่วนใหญ่ หากมีการเปลี่ยนแปลงฐานข้อมูลอย่างมีนัยสำคัญ (ปลั๊กอินใหม่เนื้อหาที่อัพเดท ฯลฯ ) จากนั้นฉันจะถ่ายโอนข้อมูลจากการทดสอบของฉัน; ทำการสำรองข้อมูลของการพัฒนาและนำเข้าการถ่ายโอนข้อมูล

ฉันใช้กระบวนการเดียวกันสำหรับการจัดเตรียม การจัดเตรียมตั้งอยู่บนเซิร์ฟเวอร์เดียวกับการใช้งานจริงตรวจสอบการขัดและตรวจสอบให้แน่ใจว่าการตั้งค่าและโมดูลทั้งหมดทำงานบนเซิร์ฟเวอร์ที่ใช้งานจริง เมื่อฉันพร้อมฉันสำรองไฟล์และฐานข้อมูลการผลิตทั้งหมดและคัดลอกไฟล์และฐานข้อมูลจากการจัดเตรียม

เนื่องจาก wp-config.php ไม่ได้อยู่ในคอมไพล์จึงทำให้ง่ายต่อการกดและดึงสิ่งต่าง ๆ เมื่อย้ายไปยังการผลิตจากการแสดงละครฉันคัดลอกไฟล์และไม่ใช้ git ดังนั้นฉันต้องแน่ใจว่า wp-config.php ถูกต้อง

ฉันถามคำถาม simliar แล้วและฉันจะพิจารณาใช้ปลั๊กอินนี้

ฉันยังคิดเกี่ยวกับการใช้ Capistrano; และสร้างสคริปต์การย้ายข้อมูลโดยละเอียดที่จะผ่านและจัดการไฟล์และการสำรองข้อมูล / การย้ายฐานข้อมูลทั้งหมดรวมถึงการอัปเดตพา ธ ไฟล์และ URL

เครื่องมือ

  • Textmate สำหรับบรรณาธิการของฉันแม้ว่าฉันจะเริ่มใช้ MacVim ฉันใช้เป็นกลุ่มเมื่อบน linux
  • Sequel Pro สำหรับการจัดการฐานข้อมูล หากฉันไม่สามารถเชื่อมต่อได้ฉันจะใช้ PHPMyAdmin
  • ส่งสำหรับ FTP ถ้าฉันต้องการมัน
  • git สำหรับการควบคุมการแก้ไข ส่วนใหญ่เป็นบรรทัดคำสั่งแม้ว่าฉันจะใช้ไคลเอนต์ใน Textmate และ GittiApp สักหน่อย

1

สิ่งหนึ่งที่ช่วยฉันได้ (โดยเฉพาะเมื่อทำงานกับไคลเอนต์หลายธีม) คือการใช้ WordPress Multisite ติดตั้งบนเซิร์ฟเวอร์ dev ของฉัน ด้วยวิธีนี้ฉันสามารถมีงานเปิดได้มากเท่าที่ต้องการและไม่ต้องกังวลเกี่ยวกับลูกค้า A การดูธีมของลูกค้า B จับคู่สิ่งนี้กับเนื้อหาตัวอย่างที่ครอบคลุมซึ่งฉันโหลดทุกครั้งที่สร้างไซต์ใหม่และคุณมีระบบ dev ที่ยอดเยี่ยม


0

ฉันทำตั้งแต่การแฮ็กในสถานที่บนเซิร์ฟเวอร์ในความกล้าของระบบชีวิตไปจนถึงการพัฒนา dev / ทดสอบ / ขั้นตอน / วงจรชีวิตที่มีโครงสร้างมากขึ้นโดยใช้ระบบควบคุมเวอร์ชันและการทดสอบอัตโนมัติ มันขึ้นอยู่กับงาน

ถัดจากที่ฉันรายงานข้อผิดพลาดกลับไปที่โครงการเวิร์ดเพรสเมื่อฉันเรียกใช้พวกเขา

สำหรับการพัฒนาปลั๊กอินฉันพยายามที่จะไม่คิดค้นวงล้อใหม่อยู่ตลอดเวลาเพื่อสร้างสิ่งใหม่ตามหลักการและรูปแบบที่มีอยู่


0

นี่คือขั้นตอนการทำงานของฉัน:

  • ฉันเริ่มต้นด้วยการสร้างไดเรกทอรีของโครงการทันทีที่ฉันได้รับข้อกำหนดและการออกแบบของเว็บไซต์
  • รุ่นStaticและtheme/pluginโฟลเดอร์ใน Dynamicโฟลเดอร์โดยใช้ Git
  • สร้างโฮสต์เสมือนสำหรับโครงการ ฉันทำตามอนุสัญญานี้:

    http://project1.dev/

    http://project1.static.dev (ไม่บังคับ)

  • ฉันมักจะติดตามองค์กรโฟลเดอร์นี้:

    Projects
           Project1Name
                       Docs //Requirements docs, emails, other related documents. 
                            //This directory may contain directories with  names as dates
                            //(e.g 2014-01-01) to stay super organized :)    
                       Designs //All PSDs go here  
                       Data  //Database backup for the project,
                       Site
                           Dynamic //WordPress generally
                           Static //I don't always create a static version. I did a couple  
                                  //of times in the past. I use the same structure inside
                                  //the theme or plugin I'm developing
                                 js
                                 css
                                 img
    
           Project2Name and so on ...
    

ฉันรู้ว่าฉันยังไม่ได้ใช้buildเครื่องมือในแต่ละวันซึ่งทำให้ฉันรู้สึกแย่

แต่ฉันจะใช้เครื่องมือสร้าง ANT สำหรับโปรเจ็กต์ Sprite2CSSของฉันควบคู่ไปกับสคริปต์ PHP สองตัวสำหรับการใช้งานของ ANT

เครื่องมือ


ไม่ว่าฉันจะใช้ Windows หรือ Ubuntu ฉันจะใช้สิ่งต่อไปนี้:

  • Netbeans + SublimeText2 + Notepad ++
  • WAMP - (PHP)
  • FakeMail
  • Git
  • Chrome และ DevTools + Firefox พร้อม Firebug และ Safari + IE สำหรับการทดสอบ
  • YSlow!
  • FTP ในตัว Filezilla / WinSCP / NB
  • พร้อมรับคำสั่ง Cygwin
  • นักแต่งเพลง
  • NodeJS + NPM
  • SQLYog Community Edition + PHPMyAdmin

ฉันเปิดรับข้อเสนอแนะในการปรับปรุงกระบวนการทำงานของฉัน


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