मैं एक PHP प्रोजेक्ट पर काम कर रहा हूं जिसमें POST अनुरोध कॉल करने वाले कई पेज हैं, जैसे लॉगिन, रजिस्टर, टिप्पणी करना आदि।

मैंने सभी POST अनुरोधों को post.php नामक एक फ़ाइल में संसाधित करने का प्रयास किया है, जिसमें प्रत्येक अनुरोध 'formtype' पैरामीटर युक्त है, जैसे,

$formtype = $_POST['formtype'];
if ($formtype == "register") {
    register_function_here();
} else if ($formtype == 'login') {
    login_function_here();
} else {
    die("Error: No FORMTYPE");
}

और मैंने अलग-अलग कार्यों के लिए अलग-अलग फाइलें रखने की भी कोशिश की है, जैसे कि login.php, register.php, comment.php और आदि।

POST अनुरोधों को संसाधित करने के लिए कौन सी विधि बेहतर है? जैसा कि मैंने किया है, क्या सभी POST अनुरोधों को एक फ़ाइल में संसाधित करने के लिए कोई नुकसान है?

अग्रिम में धन्यवाद!

0
Min Gu Kang 20 जुलाई 2019, 18:42

2 जवाब

सबसे बढ़िया उत्तर

मुझे लगता है कि आपका मतलब है कि आप नहीं करना चाहते हैं:

GET index.php
POST user/register.php
POST user/login.php

index.php
user/
    register.php
    login.php
404.php

MVC (मॉडल, व्यू, कंट्रोलर) के बारे में @ArtisticPhoenix वास्तव में वही है जो आपने कोशिश की थी। खैर, नियंत्रक भाग के लिए मेरा मतलब है। आप राउटर बनाने का प्रयास करें।

आप ऐसा कर सकते थे। यदि आप कोडिंग में नए हैं और आपके पास समय है तो मैं भी कहूंगा: इसे करो। यदि आपके पास समय नहीं है और समाधान की आवश्यकता है तो मैं एक ढांचा खोजने का सुझाव देता हूं - कम से कम रूटिंग के लिए।


आरंभ करना:

सबसे पहले मैंने यह पाया: https://www.taniarascia.com/the-simplest -php-राउटर/

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

उदाहरण:

एक रूटिंग कॉन्फ़िगरेशन बनाएं

// file: config/routes.php
return [
    'routes' => [
        [
            'path'            => "/login",
            'class'           => LoginController::class,
            'method'          => 'loginAction',
            'allowed_methods' => ['POST'],
        ],
        [
            'path'            => "/logout",
            'class'           => LoginController::class,
            'method'          => 'logoutAction',
            'allowed_methods' => ['GET', 'POST'],
        ],
        // ...
    ],
];

नियंत्रक बनाएं

// file: Controller/LoginController.php
namespace Controller;
class LoginController
{
    public function loginAction()
    {
        // ...
    }

    public function logoutAction()
    {
        // ...
    }
}

अब अनुरोधित पथ का उपयोग करें और इसे नियंत्रक के लिए route करें।

यदि कोई मार्ग नहीं मिला तो एक HTTP 404 "नहीं मिला" प्रतिक्रिया लौटाएं।

// file: index.php
// load routing config
$routes = require 'config/routes.php';
// ...
// ... this now is up to you. 
// you should search in the config if the requested path exists
// and if the request is in the allowed_methods
// and then create a new controller and call the method.
0
cottton 20 जुलाई 2019, 20:42

मैं प्रति वर्ग एक स्रोत फ़ाइल, कक्षाओं का उपयोग करते हुए, ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग की दृढ़ता से अनुशंसा करता हूं।

-1
C.B. 20 जुलाई 2019, 19:44