"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > PHP में एक सरल पेज राउटर बनाना

PHP में एक सरल पेज राउटर बनाना

2024-11-07 को प्रकाशित
ब्राउज़ करें:167

फ़ाइलें बनाएं

सबसे पहले, हम Index.php, Router.php, और .htaccess फ़ाइलें बनाएंगे।

सभी अनुरोधों को .htaccess में Index.php पर पुनर्निर्देशित करें

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]

Router.php के लिए सीधी पहुंच से रोकें

यदि उपयोगकर्ता सीधे Router.php तक पहुंचने के लिए यूआरएल दर्ज करता है तो यह कोड 404 प्रतिक्रिया दिखाएगा।

Router.php में पेज क्लास जोड़ें

class Page
{
  protected static bool $Return_404 = true;
}

404 पेज वापस करने के लिए एक स्थिर बूलियन वैरिएबल बनाएं। हम इसे डिफ़ॉल्ट के रूप में सत्य पर सेट करेंगे।
अब हम 404 पृष्ठ के लिए एक फ़ंक्शन जोड़ते हैं।

protected static function Return_404(): void
    {
       (file_exists("./Pages/404.php")) ?  require_once "./Pages/404.php" : http_response_code(404);
    }

यहाँ, मैंने पेज फ़ोल्डर के अंदर एक 404 पेज रखा है। आप इसे अपनी इच्छानुसार किसी भी फोल्डर में रख सकते हैं।

हम "फ़ाइल" फ़ंक्शन भी जोड़ेंगे।

protected static function File(string $file): string
{
    if (!empty($file)) {
        (str_contains($file, "?")) ? $file = strtok($file, '?') : $file;
        ($file[strlen($file) - 1] === "/") ? $file = rtrim($file, "/") : $file;
    }
    return $file;
}

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

Router.php में रूट क्लास जोड़ें

class Routes
{
    public static array $Route = array(
        "" => "Pages/home.php",
        "/about" => "Pages/about.php",
    );
}

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

Router.php में राउटर क्लास जोड़ें

राउटर क्लास उस पेज क्लास से विस्तारित होगी जिसे हमने पहले ही ऊपर बनाया है।
ध्यान दें कि "" => "पेज/होम.php", होम पेज के लिए है।

class Router extends Page
{

}

अब, हम वह फ़ंक्शन लिखेंगे जो जांच करेगा कि अनुरोधित फ़ाइल राउटर क्लास में मौजूद है या नहीं।

   public static function Run(): void
    {
        $requested_file = self::File($_SERVER["REQUEST_URI"]);
        foreach (Routes::$Route as $request => $file) {
            if ($requested_file === $request) {
                if (file_exists($file)) {
                    self::$Return_404 = false;
                    require $file;
                } else echo "Error";
            }
        }
        if (self::$Return_404) self::Return_404();
    }

यह फ़ंक्शन पहले जांचता है कि अनुरोधित फ़ाइल $Route सरणी में है। यदि यह मौजूद है, तो स्थिर बूलियन $Return_404 को गलत पर सेट किया गया है ताकि 404 पेज दिखाई न दे और पेज फ़ाइल प्राप्त न हो। यदि मौजूद नहीं है, तो यह 404 पृष्ठ लौटाएगा।
यदि यह मौजूद है लेकिन पेज फ़ोल्डर में कोई फ़ाइल नहीं है, तो फ़ंक्शन "त्रुटि" प्रतिध्वनि करेगा। आप यहां इको "एरर" के बजाय 404 पेज दिखा सकते हैं।

अंतिम राउटर.php फ़ाइल इस तरह दिखेगी।

 $file) {
            if ($requested_file === $request) {
                if (file_exists($file)) {
                    self::$Return_404 = false;
                    require $file;
                } else echo "Error";
            }
        }
        if (self::$Return_404) self::Return_404();
    }
}
class Routes
{
    public static array $Route = array(
        "" => "Pages/home.php",
        "/about" => "Pages/about.php",
    );
}

Index.php

index.php में, हम राउटर क्लास से "रन" फ़ंक्शन का उपयोग करेंगे।


Router

पेजों के सभी HTML कोड "बॉडी" टैग में होंगे।

पेज बनाएं

अंत में, पेज फ़ोल्डर में होम.php, about.php और 404.php बनाएं।

home.php

Home page

के बारे में.php

about page

404.php

404 page

जांचें कि कोड "xampp" या "PHP सर्वर" एक्सटेंशन के साथ काम कर रहा है या नहीं।

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

आप यहां जीथब रिपॉजिटरी भी देख सकते हैं:

Creating a simple page router in PHP टोकिगिन / पेज-राउटर

Php-राउटर रिपॉजिटरी से मैनुअल राउटर

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/kohtet_gintoki/creating-a-simple-page-router-in-php-2hpf?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3