MediaWiki एक्सटेंशन विकास गाइड

From binaryoption
Jump to navigation Jump to search
Баннер1
    1. मीडियाविकि एक्सटेंशन विकास गाइड

परिचय

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

एक्सटेंशन क्या हैं?

मीडियाविकि एक्सटेंशन अनिवार्य रूप से PHP कोड के टुकड़े हैं जो मीडियाविकि कोर कोड में एकीकृत होते हैं। वे कोर फ़ंक्शन को संशोधित करने, नए फ़ंक्शन जोड़ने या मौजूदा व्यवहार को बदलने के लिए डिज़ाइन किए गए हैं। एक्सटेंशन विभिन्न प्रकार के कार्यों को कर सकते हैं, जैसे:

एक्सटेंशन मीडियाविकि की कार्यक्षमता को विस्तारित करने का एक सुरक्षित और व्यवस्थित तरीका प्रदान करते हैं, क्योंकि वे कोर कोड को सीधे संशोधित करने से बचते हैं।

विकास वातावरण सेटअप

एक्सटेंशन विकास शुरू करने से पहले, आपको एक उपयुक्त विकास वातावरण स्थापित करने की आवश्यकता होगी। इसमें शामिल हैं:

1. **मीडियाविकि इंस्टॉलेशन:** आपके पास एक स्थानीय मीडियाविकि इंस्टॉलेशन होना चाहिए। आप इसे मीडियाविकि डाउनलोड पेज से डाउनलोड कर सकते हैं और अपने सर्वर या स्थानीय मशीन पर स्थापित कर सकते हैं। 2. **PHP:** मीडियाविकि PHP में लिखा गया है, इसलिए आपको PHP के साथ परिचित होना चाहिए। नवीनतम स्थिर PHP संस्करण का उपयोग करना अनुशंसित है। 3. **टेक्स्ट एडिटर या IDE:** आपको कोड लिखने और संपादित करने के लिए एक टेक्स्ट एडिटर या इंटीग्रेटेड डेवलपमेंट एनवायरनमेंट (IDE) की आवश्यकता होगी। लोकप्रिय विकल्पों में Visual Studio Code, PHPStorm, या Sublime Text शामिल हैं। 4. **डेटाबेस:** मीडियाविकि को डेटा संग्रहीत करने के लिए एक डेटाबेस की आवश्यकता होती है, जैसे MySQL, PostgreSQL, या SQLite

एक्सटेंशन संरचना

एक मीडियाविकि एक्सटेंशन में आमतौर पर निम्नलिखित संरचना होती है:

  • **एक्सटेंशन नाम:** एक्सटेंशन का नाम। यह नाम एक्सटेंशन फ़ोल्डर के नाम के समान होना चाहिए।
  • **एक्सटेंशन.php:** यह मुख्य फ़ाइल है जो एक्सटेंशन को परिभाषित करती है। इसमें एक्सटेंशन का नाम, विवरण और आवश्यक फ़ाइलें शामिल हैं।
  • **क्लास फ़ाइलें:** ये PHP क्लास फ़ाइलें हैं जो एक्सटेंशन की कार्यक्षमता को लागू करती हैं।
  • **टेम्प्लेट:** ये मीडियाविकि टेम्प्लेट हैं जिनका उपयोग एक्सटेंशन द्वारा आउटपुट उत्पन्न करने के लिए किया जाता है।
  • **जावास्क्रिप्ट/CSS फ़ाइलें:** यदि एक्सटेंशन को क्लाइंट-साइड इंटरैक्शन या स्टाइलिंग की आवश्यकता है, तो जावास्क्रिप्ट और CSS फ़ाइलें शामिल की जाती हैं।
  • **भाषा फ़ाइलें:** एक्सटेंशन के लिए अनुवादित पाठ को संग्रहीत करने के लिए भाषा फ़ाइलें।

पहला एक्सटेंशन बनाना: "हैलो वर्ल्ड"

आइए एक सरल "हैलो वर्ल्ड" एक्सटेंशन बनाकर शुरुआत करें।

1. **फ़ोल्डर बनाना:** अपने मीडियाविकि इंस्टॉलेशन के `extensions` फ़ोल्डर में एक नया फ़ोल्डर बनाएं। इस फ़ोल्डर का नाम `HelloWorld` रखें।

2. **Extension.php फ़ाइल बनाना:** `HelloWorld` फ़ोल्डर के अंदर एक `Extension.php` फ़ाइल बनाएं। निम्नलिखित कोड जोड़ें:

```php <?php /**

* HelloWorld extension
*
* Adds a "Hello World" message to the page.
*
* @file Extension.php
* @ingroup Extensions
* @author Your Name
* @license GPL-2.0-or-later
*/

class HelloWorld {

/** * Constructor */ public function __construct() { global $wgExtensionMessages; $wgExtensionMessages['helloworld'] = array( 'category' => 'category', 'hello' => 'Hello World!', ); global $wgHooks; $wgHooks['ParserAfterTidy'][] = array( 'HelloWorld', 'addHelloWorldMessage' ); }

/** * Adds the "Hello World" message to the page. * * @param Parser $parser * @param string $text * @return string */ public static function addHelloWorldMessage( Parser $parser, string $text ) {

return $text . '

' . wfMessage( 'helloworld', 'hello' )->text() . '

';

} }

$wgExtension = new HelloWorld(); ```

3. **एक्सटेंशन को सक्षम करना:** `LocalSettings.php` फ़ाइल खोलें और निम्नलिखित पंक्ति जोड़ें:

```php require_once '$IP/extensions/HelloWorld/Extension.php'; ```

4. **कैश साफ़ करना:** मीडियाविकि कैश को साफ़ करें। आप इसे अपने वेब ब्राउज़र में `?action=purge` जोड़कर कर सकते हैं।

5. **परीक्षण करना:** किसी भी विकि पृष्ठ पर जाएं। आपको पृष्ठ के अंत में "Hello World!" संदेश दिखाई देना चाहिए।

एक्सटेंशन डेवलपमेंट के लिए महत्वपूर्ण अवधारणाएं

  • **हुक (Hooks):** हुक मीडियाविकि के भीतर विशिष्ट बिंदुओं पर एक्सटेंशन को कोड निष्पादित करने की अनुमति देते हैं। वे एक्सटेंशन को कोर फ़ंक्शन को संशोधित करने या नई कार्यक्षमता जोड़ने का एक शक्तिशाली तरीका प्रदान करते हैं। हुक सिस्टम के बारे में अधिक जानकारी के लिए, MediaWiki documentation देखें।
  • **संदेश (Messages):** संदेश एक्सटेंशन के लिए अनुवाद योग्य पाठ प्रदान करते हैं। वे अंतरराष्ट्रीयकरण (i18n) के लिए महत्वपूर्ण हैं और एक्सटेंशन को कई भाषाओं में उपयोग करने की अनुमति देते हैं। संदेश प्रणाली के बारे में अधिक जानकारी के लिए, MediaWiki documentation देखें।
  • **टेम्प्लेट (Templates):** टेम्प्लेट मीडियाविकि पृष्ठों में पुन: प्रयोज्य सामग्री ब्लॉक हैं। एक्सटेंशन नए टेम्प्लेट बना सकते हैं या मौजूदा टेम्प्लेट को संशोधित कर सकते हैं। टेम्प्लेट सिस्टम के बारे में अधिक जानकारी के लिए, MediaWiki documentation देखें।
  • **API:** मीडियाविकि एक शक्तिशाली API प्रदान करता है जिसका उपयोग एक्सटेंशन बाहरी डेटा स्रोतों के साथ इंटरैक्ट करने या अन्य अनुप्रयोगों के साथ एकीकृत करने के लिए कर सकते हैं।
  • **सुरक्षा (Security):** एक्सटेंशन विकास में सुरक्षा एक महत्वपूर्ण पहलू है। आपको सुरक्षा सर्वोत्तम प्रथाओं का पालन करना चाहिए ताकि आपके एक्सटेंशन कमजोरियों से मुक्त हों।

उन्नत विषय

  • **स्पेशल पेज (Special Pages):** एक्सटेंशन स्पेशल पेज बना सकते हैं जो व्यवस्थापकों और उपयोगकर्ताओं को विशिष्ट कार्य करने की अनुमति देते हैं।
  • **API इंटरैक्शन:** एक्सटेंशन मीडियाविकि API का उपयोग बाहरी सेवाओं के साथ इंटरैक्ट करने या डेटा पुनर्प्राप्त करने के लिए कर सकते हैं।
  • **डेटाबेस एक्सेस:** एक्सटेंशन सीधे डेटाबेस से डेटा पढ़ और लिख सकते हैं।
  • **फॉर्म हैंडलिंग:** एक्सटेंशन मीडियाविकि में फॉर्म बना सकते हैं और उपयोगकर्ता इनपुट को संसाधित कर सकते हैं।
  • **जावास्क्रिप्ट/AJAX:** एक्सटेंशन क्लाइंट-साइड इंटरैक्शन और गतिशील सामग्री के लिए जावास्क्रिप्ट और AJAX का उपयोग कर सकते हैं।

डिबगिंग और परीक्षण

एक्सटेंशन विकास के दौरान, डिबगिंग और परीक्षण महत्वपूर्ण हैं।

  • **PHP त्रुटि रिपोर्टिंग:** PHP त्रुटि रिपोर्टिंग को सक्षम करें ताकि आप त्रुटियों और चेतावनियों को देख सकें।
  • **मीडियाविकि डिबग मोड:** मीडियाविकि डिबग मोड को सक्षम करें ताकि आप अधिक विस्तृत लॉगिंग जानकारी प्राप्त कर सकें।
  • **यूनिट परीक्षण:** अपने एक्सटेंशन के लिए यूनिट परीक्षण लिखें ताकि यह सुनिश्चित हो सके कि यह सही ढंग से काम करता है।
  • **मैनुअल परीक्षण:** विभिन्न परिदृश्यों में अपने एक्सटेंशन का मैन्युअल रूप से परीक्षण करें।

एक्सटेंशन प्रकाशित करना

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

संसाधन

निष्कर्ष

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


अन्य संभावित श्रेणियाँ: , ,

अभी ट्रेडिंग शुरू करें

IQ Option पर रजिस्टर करें (न्यूनतम जमा $10) Pocket Option में खाता खोलें (न्यूनतम जमा $5)

हमारे समुदाय में शामिल हों

हमारे Telegram चैनल @strategybin से जुड़ें और प्राप्त करें: ✓ दैनिक ट्रेडिंग सिग्नल ✓ विशेष रणनीति विश्लेषण ✓ बाजार की प्रवृत्ति पर अलर्ट ✓ शुरुआती के लिए शिक्षण सामग्री

Баннер