वर्डप्रेस "मुख्य प्लगइन फ़ाइल" कैसे निर्धारित करता है?
यह आपके प्लगइन में फ़ाइल है जिसमें प्लगइन हेडर टिप्पणी है
/**
* 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.
। मैं केवल बड़े प्लगइन्स के लिए सबफ़ोल्डर का उपयोग करने की सलाह दूंगा। यदि आपको विगेट्स इत्यादि जैसे अतिरिक्त सामान मिले हैं, तो आप उनके लिए विशिष्ट सबफ़ोल्डर्स का उपयोग कर सकते हैं।
अंतिम शब्द: नहीं, जो कुछ भी आपने पाया है वह सच है , उन (जैसे सामान जो मैंने आपको दिखाया था) केवल सिफारिशें हैं।