कैसे एक प्लगइन के लिए निर्देशिका संरचित होना चाहिए?


9

मुझे मूल प्लगइन अवधारणा मिलती है। मैंने एक प्लगइन लिखने पर कोडेक्स लेख पढ़ा है

वह लेख "मुख्य प्लगइन फ़ाइल" के बारे में बात करता है।

वर्डप्रेस "मुख्य प्लगइन फ़ाइल" कैसे निर्धारित करता है?

Q1:
क्या यह वैधानिक / समर्थित है एक प्लगइन जो इस तरह संरचित है:

  • pluginname /
  • pluginname / mainfile.php
  • pluginname / supportingcode-1.php
  • pluginname / supportingcode-2.php
  • pluginname / Readme.txt
  • आदि..

?

Q2:
यदि हां, तो वर्डप्रेस यह कैसे निर्धारित करता है कि कौन सी php फाइल मुख्य प्लगइन फाइल है?


मैंने सिफारिशें देखी हैं कि "मैं अपने कोड को इस तरह से संरचना करता हूं ":

  • pluginname /
  • pluginname / mainfile.php
  • pluginname / इंक / supportingcode-1.php
  • pluginname / इंक / supportingcode-2.php
  • pluginname / Readme.txt
  • आदि..

Q3:
क्या एक उपनिर्देशिका (जैसे inc/उपरोक्त उदाहरण में) का उपयोग एक आवश्यकता है जब PHP कोड कई मॉड्यूलों को फैलाता है?

Q4:
क्या यह सच है कि मुख्य प्लगइन निर्देशिका में अधिकतम एक php फ़ाइल होनी चाहिए?

धन्यवाद।


निश्चित रूप से आपका पहला प्रश्न 'वर्डप्रेस मुख्य PHP फ़ाइल का निर्धारण कैसे करता है' इसका उत्तर सीधे मुख्य ' फाइल हेडर
icc97

जवाबों:


12

वर्डप्रेस "मुख्य प्लगइन फ़ाइल" कैसे निर्धारित करता है?

यह आपके प्लगइन में फ़ाइल है जिसमें प्लगइन हेडर टिप्पणी है

/**
 * Plugin Name: A fresh example
 * Plugin URI:  http://example.com
 * Description: Foo makes a bar
 * Version:     2012-06-14.1426
 * Author:      John Doe
 * Author URI:  http://example.com
 * TextDomain:  your_textdomain
 * License:     MIT
 * LicenseURI:  http://www.opensource.org/licenses/mit-license.php
 */

Q1: क्या यह कानूनी / समर्थित है कि इस तरह संरचित एक प्लगइन है:

हाँ। प्रत्येक निर्देशिका संरचना (जहाँ तक सर्वरों द्वारा समर्थित है) कानूनी है।

Q2: यदि हां, तो वर्डप्रेस यह कैसे निर्धारित करता है कि कौन सी php फाइल मुख्य प्लगइन फाइल है?

ऊपर देखें ↑

Q3: क्या एक उपनिर्देशिका (जैसे उपरोक्त उदाहरण में inc /) का उपयोग एक आवश्यकता है जब PHP कोड कई मॉड्यूलों को फैलाता है?

आवश्यकता? नहीं। पढ़ने के लिए अच्छे: हाँ। बनाए रखने में आसान: हाँ।

Q4: क्या यह सच है कि मुख्य प्लगइन निर्देशिका में अधिकतम एक php फ़ाइल होनी चाहिए?

नहीं, बस नहीं।

सारांश पेश करना

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

उदाहरण

मैं व्यक्तिगत .class.phpरूप से विस्तार के रूप में अपील करता हूं, जब मुझे इसमें एक वर्ग मिला। मैं भी अपनी फ़ाइलों को कक्षा की तरह ही नाम देता हूं। कारण सरल है: मेरी "मुख्य प्लगइन फ़ाइल" - जो कि मेरी bootstrapकक्षा है, आमतौर पर सभी आवश्यक सामानों को लोड करने के बारे में परवाह है।

// inside my PREFIX_bootstrap class:
public static $includes = array(
    'settings'          => false // Parent class - no need to hook
   ,'settings_extended' => true  // Extending class - hooks static init() on `init` hook
);

public function construct()
{
    // The prefix for every class in my plugin
    $prefix = 'my_class_prefix_';

    foreach ( $this->files as $handle => $hook )
    {
        require_once plugin_dir_path( __FILE__ )."{$handle}.class.php";

        if ( ! $hook )
            continue;

        $class = $prefix.$handle;
        class_exists( $class ) AND add_action( 'init', array( $class, 'init' ), 1 );
    }
}

इसका मतलब यह है कि मेरी कक्षाओं और फाइलों को निम्न नाम दिया गया है:

  • settings.class.php तथा settings_extended.class.php
  • my_class_prefix_settings तथा my_class_prefix_settings_extended

मैं कुछ बुनियादी निर्देशिका संगठन भी करता हूं, जैसे js/css/imgनिर्देशिका में सभी फ़ाइलों को संग्रहीत करना ।

कुछ लोग नाम रखने के लिए (बड़े प्लगइन के लिए) फ़ोल्डर का उपयोग करते हैं inc/includes/assets/extensions/lib/etc.। मैं केवल बड़े प्लगइन्स के लिए सबफ़ोल्डर का उपयोग करने की सलाह दूंगा। यदि आपको विगेट्स इत्यादि जैसे अतिरिक्त सामान मिले हैं, तो आप उनके लिए विशिष्ट सबफ़ोल्डर्स का उपयोग कर सकते हैं।

अंतिम शब्द: नहीं, जो कुछ भी आपने पाया है वह सच है , उन (जैसे सामान जो मैंने आपको दिखाया था) केवल सिफारिशें हैं।


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

हां, यह केवल फाइलों को लोड करता है, जिसे आप "मुख्य" फ़ाइल निर्दिष्ट करते हैं। ज्ञात हो, कि हर अनुरोध पर सब कुछ लोड करने से रोकने के लिए, हुक हैं जिनके पृष्ठ विशिष्ट भाग हैं।
केसर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.