वर्डप्रेस विकास के लिए आप किस प्रक्रिया का उपयोग करते हैं? [बन्द है]


38

मुझे दिलचस्पी है कि दूसरे लोग वर्डप्रेस के लिए थीम और प्लगइन्स कैसे विकसित करते हैं। मेरे लिए, व्यवस्थापक पैनल में इन-ब्राउज़र संपादक केवल इसे काटता नहीं है। वर्तमान में, मैं बस एक PHP प्लगइन (NetBeans) के साथ एक IDE का उपयोग कर रहा हूं, अपने सर्वर से मेरी विकास वेब निर्देशिका को नीचे खींच रहा हूं, वहां संपादन कर रहा हूं, परीक्षण करने के लिए धक्का दे रहा हूं, और फिर जीने के लिए पलायन कर रहा हूं।

मैं खोज रहा हूं कि दूसरे लोग लाइव जाने से पहले वर्डप्रेस के नवीनतम संस्करणों के विकास, परीक्षण और तैनाती, थीम, प्लगइन्स और तैनाती के लिए वर्कफ़्लोज़ को प्रबंधित करने के लिए अपने पसंद के टूल का उपयोग कैसे करते हैं।

मैंने इसे एक सामुदायिक विकि बनाया है ताकि अन्य लोग वहां विकास प्रक्रिया को साझा कर सकें। मैं यहाँ एक विलक्षण सही उत्तर खोजने की उम्मीद नहीं कर रहा हूँ - आपकी प्रक्रिया आपकी खुद की है, और मैं यह उम्मीद नहीं करूँगा कि आप सिर्फ अपने या किसी और के लिए काम करते हैं। मुझे सिर्फ यह देखने में दिलचस्पी है कि प्लगइन्स और थीम विकसित करने की मेरी क्षमता क्या है या अन्य लोगों के लिए काम नहीं करता है।

एक और सवाल यहां वर्डप्रेस के विकास का समर्थन करने के लिए विशिष्ट सॉफ्टवेयर टूल पर चर्चा करता है । यहाँ, मैं और अधिक प्रक्रिया और कार्यप्रणाली की तलाश कर रहा हूँ, जिन्हें कुछ उपकरणों के स्वतंत्र रूप से लागू किया जा सकता है, कुछ विशेष कार्यों के अपवाद के साथ, जो केवल उपकरण के एक निश्चित परिवार में सम्पन्न हो सकते हैं।


आप शायद। इसी तरह का सवाल पहले से ही किया गया था: wordpress.stackexchange.com/questions/324/…
Tal Galili

जवाबों:


20

रिकॉर्ड के लिए, मैं मुख्य रूप से पूरे वेब साइटों और प्लगइन्स को बनाता हूं, और उन्हें तैनात करता हूं। मेरी वर्कफ़्लो बहुत रूबी है- और गिट-हेवी।

एक नई परियोजना को शुरू करने के लिए, मेरे पास एक शेल स्क्रिप्ट है जो एक नए vhost को स्थापित करने और वर्डप्रेस के नवीनतम टैग (हमारे अपने गिट रिपॉजिटरी से, जो svn को ट्रैक करता है) की पूरी जाँच करता है।

संपूर्ण वेब साइट का मूल आकार wp-content में git repsotory है। जिसमें एक Capfile (capistrano का मेकफाइल एक्युवैलेंट) और एक YAML कॉन्फ़िगरेशन फ़ाइल शामिल है, जो एक साथ तैनाती ( http://github.com/dxw/wp-capistrano ) का ध्यान रखते हैं। इसके अलावा उस भंडार के अंदर मैं git उप-मॉड्यूल के रूप में विषय और प्लगइन्स जोड़ता हूं (हां, हम थर्ड पार्टी प्लगइन्स के लिए भी git रिपॉजिटरी बनाए रखते हैं - हम उस नवीनतम संस्करण का उपयोग करना पसंद करते हैं जिसे हमने व्यक्तिगत रूप से परीक्षण किया है)।

थीम के लिए, मेरे पास एक कोड-जनरेशन टूल / फ्रेमवर्क ( github.com/dxw/wp-generate ) है। इसका मतलब यह है कि कोड कहां जाना चाहिए, इसके बारे में कम सोच है, और यह दृश्य और मॉडल / नियंत्रक के बीच अलगाव की एक प्राकृतिक विधि है।

प्लगइन्स लिखते समय मैं टेस्ट-संचालित विकास ( github.com/dxw/cucumber-wordpress ) करने के लिए ककड़ी / वेब्रैट का उपयोग करता हूं ।

और विकास डेटाबेस को उत्पादन में स्थानांतरित करने के लिए, यह आमतौर पर डंप की नकल करने का एक मामला है (WP_SITEURL और WP_HOME कैपिस्ट्रानो द्वारा स्टेजिंग / उत्पादन मशीनों पर सेट किए जाते हैं ताकि कोई खोज / प्रतिस्थापन न हो)।

मैं कल्पना नहीं कर सकता कि मैंने इन लिपियों के साथ कितने घंटे बचाए हैं।


लिंक के लिए विशेष धन्यवाद। लेकिन क्या आपके पास ऐसी परिस्थितियाँ नहीं हैं जहाँ आप उत्पादन डेटाबेस की सामग्री को नहीं खो सकते हैं? मैंने यह पता लगाने के लिए कि हाथ से लोड करने के लिए कौन सी तालिकाओं का चयन करके काम करने का एक तरीका नहीं निकाला है, और फिर भी, मुझे मेनू आइटम फिर से करना होगा।
डैनियल सी। सोबराल

6

@ थोमस ओवेन्स यह प्रश्न कुछ हद तक ओवरलैप करता है और "डुप्लिकेट फॉर वर्डप्रेस थीम / प्लगइन डेवलपमेंट? " प्रश्न को दोहराता है । यकीन नहीं होता कि हमें बंद करना चाहिए लेकिन लगता है कि थोड़ा अलग है। इसलिए...

मैक ओएस एक्स

मैक्स ओएस एक्स (हमेशा बेहतर की तलाश में) के लिए यहां मेरा आवश्यक टूलसेट अभी है। नोट i ने नेटबिन की कोशिश की और इसे छोड़ दिया। बहुत सुस्त और बहुत कम सुविधाएँ।

  • PhpStorm + XDebug - डिबगिंग आईडीई (Mac पर कुछ भी नहीं बेहतर)
  • VirtualHostX - अपाचे वर्चुअल होस्ट्स को स्थानीय रूप से प्रबंधित करता है (मैं इसे प्यार करता हूं )
  • FileZilla - एफ़टीपी क्लाइंट
  • फ़ायरफ़ॉक्स फ़ायरबग - jQuery डीबगिंग
  • MySQL के लिए Navicat - वाणिज्यिक MySQL ग्राहक
  • Unfuddle.com - क्लाइंट प्रोजेक्ट्स के लिए SVN रिपोजिटरी और टास्क मैनेजमेंट
  • HTTP स्कूप - उचित HTTP डिबगर
  • Fraise - हल्के पाठ संपादक (का कांटा Smultron )

विंडोज विस्टा

जब मैं विंडोज विस्टा पर था तो मेरा आवश्यक टूलसेट था:

  • FileZilla - एफ़टीपी क्लाइंट
  • फ़ायरफ़ॉक्स फ़ायरबग - jQuery डीबगिंग
  • MySQL के लिए Navicat - वाणिज्यिक MySQL ग्राहक
  • Unfuddle.com - क्लाइंट प्रोजेक्ट्स के लिए SVN रिपोजिटरी और टास्क मैनेजमेंट
  • PhpED - डिबगिंग आईडीई (विंडोज़ पर कुछ भी नहीं बेहतर है, 'सीईपीटी शायद PhpStorm + [Xdebug] [24])
  • HeidiSQL - महान ओपन-सोर्स MySQL क्लाइंट
  • Notepad2 - ग्रेट हल्के और प्रयोग करने योग्य नोटपैड विकल्प
  • TortoiseSVN - एसवीएन क्लाइंट
  • फिडलर 2 - अपराजेय HTTP डिबगर

कोड तैनाती / डेटा स्थानांतरण डोमेन को स्विच करने के लिए

निश्चित नहीं है कि यह वही है जो आप देख रहे हैं, लेकिन मैं स्थानीय देव सर्वर, परीक्षण सर्वर और परिनियोजन सर्वर के बीच पलायन को कम करने के लिए एक प्लगइन विकसित करता हूं। मैंने इसके बारे में यहाँ लिखा है:

उम्मीद है की यह मदद करेगा

-माइक


5

यह एक वर्कफ़्लो उत्तर है, जो आईडीई या प्लगइन के लिए विशिष्ट नहीं है।

एक समाधान जो प्लगइन विकास के लिए वास्तव में अच्छी तरह से काम करता है, एक स्थानीय एपाचे वेब सर्वर के साथ शुरू करना है जिसमें प्रत्येक वर्डप्रेस भिन्नता उप-फ़ोल्डर में स्थापित है।

स्थानीय सर्वर रूट के बाहर एक अलग स्थान पर, अपने वर्डप्रेस प्लगइन / थीम वर्किंग कॉपी स्टोर करें। प्रत्येक वर्डप्रेस भिन्नता के / wp-content / plugins फ़ोल्डर में उपयुक्त ट्रंक / टैग / शाखा में एक सिमलिंक बनाएं।

आपके आईडीई में आपके द्वारा किए गए बदलावों को संपादित करते समय, स्पष्ट रूप से प्रत्येक वर्डप्रेस इंस्टॉल में प्रतिनिधित्व किया जाएगा, इसलिए वर्डप्रेस के कई रूपों का परीक्षण करना आसान हो जाता है।

अनिवार्य रूप से, आप प्रत्येक स्थानीय वर्डप्रेस भिन्नता के लिए एक ब्राउज़र टैब खोल सकते हैं और किसी एकल प्रोजेक्ट और एकल फ़ाइल बेस पर काम करते हुए हर एक का परीक्षण कर सकते हैं।

एक आईडीई का उपयोग करना जो एसवीएन और एफ़टीपी का समर्थन करता है, आपको बस अपनी कामकाजी कॉपी को संपादित करना है और रिपॉजिटरी में अपने परिवर्तनों को वापस करना है।

आईडीई कोडा के रूप में यह मेरे लिए करता है, लेकिन मुझे नेटबीन्स और एक्लिप्स भी पसंद हैं।

एक बार जब आप खुश हो जाते हैं कि आपका प्लगइन काम करता है और आपने अपनी रिपॉजिटरी में उन बदलावों को कर लिया है, तो आप अपनी वर्डप्रेस परियोजना खोल सकते हैं और बदले हुए प्लगइन को सीधे अपनी लाइव साइट पर प्रकाशित कर सकते हैं।


3

मेरे पास एक अपेक्षाकृत जटिल सेटअप है जो मेरे वर्तमान दिन की नौकरी शुरू करने के बाद से विकसित हुआ है ~ 2.5 साल पहले।

विकसित होना

मैं अपने सभी विकास SSH पर करता हूं, GNU स्क्रीन के अंदर विम का उपयोग करते हुए । विम प्लगइन्स में शामिल हैं:

ऊर्ध्वाधर विभाजन और :set hiddenआवश्यक हैं। मैं भी एक 256 रंग टर्मिनल ( मैक ओएस एक्स पर iTerm ) रेल्सकास्ट रंग योजना के साथ पसंद करते हैं ।

हम धीरे-धीरे अपनी आवश्यकताओं के अनुरूप dBug को संशोधित कर रहे हैं। के लिए अच्छा प्रतिस्थापन print_r()और var_dump()जब आप जानते हैं कि चर एक सरणी या वस्तु है।

परिनियोजित

वर्तमान में मैं कई सार्वजनिक प्लगइन्स / थीम पर काम नहीं करता हूं, इसलिए मैं वर्डप्रेस के कई संस्करणों के साथ प्लगइन संगतता का परीक्षण नहीं करता हूं। मैं देव सर्वर पर कोड करता हूं और उस कोड को सबवर्सन के माध्यम से उत्पादन में स्थानांतरित करता हूं।


आप xdebug का उपयोग करके बहुत अच्छा var_dump प्राप्त कर सकते हैं। xdebug स्टैक निशान आपको यह भी बता सकते हैं कि फ़ंक्शंस के लिए कौन से पैरामीटर पास किए जा रहे हैं (यह बहुत मददगार है)
Taras Mankovski

3

वर्डप्रेस थीम विकास प्रक्रिया

  • मूल एक्सएचटीएमएल और सीएसएस में मॉक फ्लो वायर फ्रेम को कन्वर्ट करें

  • XHTML को master.php टेम्पलेट फ़ाइल में प्लग करें और टेम्पलेट टैग और WP फ़ंक्शन में कनवर्ट करें

  • Master.php को विभिन्न टेम्प्लेट फ़ाइलों में विभाजित करें: शीर्ष लेख ।php, index.php, sidebar.php और footer.php

  • कोई भी कस्टम क्वेरी और फ़ंक्शन लिखें जिनकी आवश्यकता हो सकती है

  • CSS लेआउट में प्लग इन करें और लेआउट 4 div {outline:1px solid red;}को ट्वीक करने में मदद करें।

  • परीक्षण और आगे के विकास के लिए वर्डप्रेस के लिए थीम फ़ोल्डर अपलोड करें

वर्डप्रेस विकास उपकरण

  • Aptana स्टूडियो वर्कप्लेस कोड एडिटर इन बिल्ट विथ एफ़टीपी

  • पोटीन

  • दोहरे 1920 x 1200 के साथ ब्राउज़र एक पर खुला और दूसरे पर कोड संपादक

  • Wacom Intuis 4 टैबलेट

  • Yslow और Google पेज की गति के साथ Firebug


3

मेरा वर्कफ़्लो बहुत सरल है। मैं 4 वातावरणों के साथ रहता हूं। परीक्षण, विकास, मंचन और उत्पादन।

कार्यप्रवाह

मैं अपने संशोधन नियंत्रण के लिए गिट का उपयोग करता हूं; मैं wp-config.php फ़ाइल को अनदेखा करता हूं, इसलिए यह फ़ाइल ओवरराइट नहीं होती है क्योंकि मैं विभिन्न स्थानों पर धक्का और खींचता हूं। मैं दूसरों को धक्का देने और खींचने के लिए सार्वजनिक / केंद्रीय भंडार के रूप में अनफ़ाल्ट का उपयोग करता हूं।

यह काफी अच्छी तरह से काम करने लगता है। जब भी मैं परीक्षण पर काम कर रहा हूं, मैं जितनी बार याद रख सकता हूं, उतनी बार प्रतिबद्ध करूंगा। दिन में कम से कम एक बार, यदि अधिक नहीं, तो मैं अनफ़ाल्ट के साथ सिंक करता हूं और परिवर्तनों में विकास सर्वर को खींचता हूं। मैं सर्वर पर कोई प्रत्यक्ष काम नहीं करने की कोशिश करता हूं, इसलिए मैं मुख्य रूप से केवल बदलावों में खींच रहा हूं। अगर महत्वपूर्ण डेटाबेस परिवर्तन किए गए (नए प्लगइन्स, अपडेट की गई सामग्री, आदि) तो मैं इसे अपने परीक्षण से हटा दूंगा; विकास का बैकअप बनाएं और डंप आयात करें।

मैं स्टेजिंग के लिए एक ही प्रक्रिया का उपयोग करता हूं। स्टेजिंग उसी सर्वर पर बैठता है जैसे उत्पादन यह पॉलिश की दोहरी जांच करता है और यह सुनिश्चित करता है कि सभी सेटिंग्स और मॉड्यूल उत्पादन सर्वर पर काम कर रहे हैं। जब मैं तैयार हो जाता हूं, मैं सभी उत्पादन फ़ाइलों और डेटाबेस का बैकअप लेता हूं, और स्टेजिंग से फ़ाइलों और डेटाबेस पर प्रतिलिपि बनाता हूं।

चूंकि wp-config.php git में नहीं है, इसलिए यह चीजों को चारों ओर से खींचने और खींचने में बहुत आसान है। स्टेजिंग से उत्पादन की ओर बढ़ते समय, मैं फ़ाइलों पर प्रतिलिपि बनाता हूं, और गिट का उपयोग नहीं करता हूं, इसलिए मुझे यह सुनिश्चित करना होगा कि wp-config.php सही है।

मैंने एक simliar सवाल पूछा है , और मैं इस प्लगइन का उपयोग करने जा रहा हूं।

मैंने Capistrano का उपयोग करने के बारे में भी सोचा है; और एक बहुत ही विस्तृत माइग्रेशन स्क्रिप्ट बना रहा है जो सभी फ़ाइलों और डेटाबेस बैकअप / माइग्रेशन के साथ-साथ फ़ाइल पथ और URL को अपडेट करने के माध्यम से जाएगी।

उपकरण

  • मेरे संपादक के लिए टेक्स्टमेट, हालांकि मैं मैकविम का उपयोग करने के लिए शुरुआत कर रहा हूं। मैं लिनक्स पर जब विम का उपयोग करता हूं।
  • डेटाबेस हेरफेर के लिए सीक्वल प्रो। अगर मैं इसके साथ जुड़ नहीं सकता तो मैं PHPMyAdmin का उपयोग करूँगा
  • अगर मुझे इसकी आवश्यकता हो तो एफ़टीपी के लिए प्रसारण।
  • संशोधन नियंत्रण के लिए git। ज्यादातर कमांड लाइन द्वारा, हालांकि मैं Textmate और GittiApp में क्लाइंट का उपयोग कर रहा हूं।

1

एक चीज जो मुझे मदद करती है (विशेषकर जब कई क्लाइंट थीम पर काम कर रही है) मेरे देव सर्वर पर एक वर्डप्रेस मल्टीसाइट इंस्टाल का उपयोग कर रही है। इस तरह, मुझे आवश्यकतानुसार कई खुली नौकरियां मिल सकती हैं, और क्लाइंट ए को देखकर क्लाइंट बी की थीम के बारे में चिंता नहीं करनी चाहिए। इसे नमूना सामग्री के एक व्यापक पैकेज के साथ युगल करें जिसे मैं हर बार लोड करता हूं जब मैं एक नई साइट बनाता हूं, और आपको एक भयानक देव प्रणाली मिली है।


0

मैं संस्करण नियंत्रण प्रणाली और स्वचालित परीक्षणों का उपयोग करके अधिक संरचित देव / परीक्षण / मंच / जीवन चक्र के लिए जीवन प्रणाली की हिम्मत में सर्वर पर इन-प्लेस हैकिंग से करता हूं। यह सिर्फ नौकरी पर निर्भर करता है।

इससे पहले कि मैं बग़ल में वापस परियोजना के लिए बग रिपोर्ट करता हूं जब मैं उन पर दौड़ता हूं।

प्लगइन विकास के लिए मैं मौजूदा सिद्धांतों और पैटर्न के आधार पर नए बनाने के लिए हर समय पहिया को फिर से आविष्कार नहीं करने की कोशिश करता हूं।


0

यहाँ मेरे कार्यप्रवाह है:

  • वेबसाइट की आवश्यकताएं और डिज़ाइन मिलते ही मैं प्रोजेक्ट की डायरेक्टरी बनाना शुरू कर देता हूं।
  • Git का उपयोग करके फ़ोल्डर Staticऔर theme/pluginफ़ोल्डर फ़ोल्डर में संस्करण Dynamic
  • प्रोजेक्ट के लिए वर्चुअल होस्ट बनाएं। मैं इस सम्मेलन का पालन करता हूं:

    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 की खपत के लिए PHP स्क्रिप्ट की एक जोड़ी के साथ युग्मित मेरे Sprite2CSS परियोजना के लिए ANT बिल्ड टूल का उपयोग करता हूं ।

उपकरण


चाहे मैं विंडोज या उबंटू पर हूं, मैं निम्नलिखित का उपयोग करता हूं:

  • नेटबींस + सबलाइमटेक्स्ट 2 + नोटपैड ++
  • WAMP - (PHP)
  • FakeMail
  • Git
  • क्रोम और DevTools + फायरबग और सफारी के साथ फ़ायरफ़ॉक्स + IE परीक्षण के लिए
  • YSlow!
  • Filezilla / WinSCP / NB का अंतर्निहित FTP
  • साइगविन + कमांड प्रॉम्प्ट
  • संगीतकार
  • नोडजेएस + एनपीएम
  • SQLYog सामुदायिक संस्करण + PHPMyAdmin

मैं अपने वर्कफ़्लो को बेहतर बनाने के सुझावों के लिए तैयार हूं।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.