2012-12-17 23 views
5

मैं लेख पढ़ कर दिया गया है:रूटिंग बिना ढांचे के आरईएसटी अनुरोध?

http://www.gen-x-design.com/archives/create-a-rest-api-with-php/

एक आराम एपीआई का निर्माण करने के लिए कैसे जानने के लिए। एक बिंदु पर यह कहता है "मान लीजिए कि आपने उपयोगकर्ताओं के लिए सही नियंत्रक को अपना अनुरोध भेज दिया है"

मैं एक ट्यूटोरियल या कुछ खोजने का प्रयास कर रहा हूं जो यह दिखाता है कि यह कैसे करना है, लेकिन मैंने जो कुछ भी पढ़ा है, वह एक ढांचा सुझाता है। मैं ढांचे के बिना यह कैसे कर सकता हूं?

संपादित करें:

मैं एक REST API का है कि मैं एक अलग आवेदन से साथ बातचीत कर सकते लिख रहा हूँ। मैं उपरोक्त ट्यूटोरियल तैयार करता हूं, और यह ज्यादातर समझ में आता है, लेकिन मैं बिल्कुल समझ नहीं पा रहा हूं कि मेरे अनुरोध को उपयोगकर्ताओं के लिए सही नियंत्रक को रूट करने का क्या अर्थ है।

+0

यदि आप PHP एमवीसी करना चाहते हैं, तो पहले से मौजूद मौजूदा ढांचे का उपयोग नहीं करना शायद सलाह नहीं दी जा सकती है। यदि आप इसे स्वयं करने का आग्रह करते हैं, तो आपको आगे परिभाषित करने की आवश्यकता है कि आप वास्तव में क्या करने की कोशिश कर रहे हैं, अभी के रूप में, यह वर्तमान स्वरूप में उत्तरदायी नहीं है। क्या आप कुछ ऐसा लिखना चाहते हैं जो HTTP अनुरोध स्वीकार करता है ... एक वास्तविक नया एमवीसी ढांचा ..? – thatidiotguy

उत्तर

3

मान लें कि आप Apache का उपयोग कर रहे हैं, तो आप mod_rewrite और कुछ PHP- आधारित तर्क के संयोजन का उपयोग करके इसे आसानी से पूरा कर सकते हैं। उदाहरण के लिए, अपने .htaccess या vhost परिभाषा, आप मार्ग एक भी हैंडलर के माध्यम से सभी अनुरोधों, संभवतः index.php सकता है:

$target = $_REQUEST['q']; 
/* parse the request and include the appropriate controller PHP */ 
:

# Don't rewrite requests for e.g. assets 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*+)$ index.php?q=$1 [L] 

... तो अपने index.php फ़ाइल में की तरह कुछ करना

उदाहरण के लिए, /products/1234 के लिए अनुरोध के परिणामस्वरूप controllers/products.php हैंडलर शामिल किया जा सकता है। वह हैंडलर उत्पाद 1234 पर काम कर सकता है। चूंकि आप आरईएसटी का उपयोग कर रहे हैं, आपको क्वेरी स्ट्रिंग पैरामीटर वाले मूल अनुरोध से चिंतित होने की आवश्यकता नहीं है।

ऐसा करने के कई तरीके हैं जो आप ऐसा करने की कोशिश कर रहे हैं, यह केवल उनमें से एक है। आखिरकार आप जो भी करेंगे, उस पर निर्भर करेगा कि आपकी विशिष्ट आवश्यकताओं क्या निर्धारित करती हैं। उपर्युक्त पैटर्न काफी आम है, हालांकि, कई ढांचे इसका उपयोग करते हैं या ऐसा कुछ करते हैं।

चीयर्स

+0

मैं इसे आज़माने जा रहा हूं .. संपादन के साथ बहुत अधिक अनुभव नहीं है। Htaccess लेकिन मैं इसे –

+0

ग्रेट पर पढ़ने की कोशिश करूंगा। अगर आपको लगता है कि मैंने आपके प्रश्न का उत्तर दिया है, तो कृपया इसे स्वीकार करने पर विचार करें। http://stackoverflow.com/faq#howtoask – Madbreaks

+0

क्या करेंगे, मैं आमतौर पर तब तक प्रतीक्षा करता हूं जब तक कि मैं –

0

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

यदि आप मौजूदा पूर्ण रूप से विकसित ढांचे का उपयोग नहीं करना चाहते हैं, तो आप अपने स्वयं के हल्के वजन-कार्यान्वयन को विस्तृत कर सकते हैं। यहां कुछ लेख शुरू करने के लिए है:

  • Write your own PHP MVC framework
  • PHP MVC framework in one hour (लेखक क्योंकि वह सोचता है कि एक आधुनिक पूरी तरह से विकसित ढांचे का उपयोग कर प्रोग्रामिंग इस तरह की चीजों के अधिक उपयुक्त तरीका है इस पोस्ट को दूर करने का फैसला किया है, फिर भी कुछ लोगों को इस तरह के सरल और छीनने वाले दृष्टिकोण को कई पहलुओं में अधिक उपयुक्त लगता है: सीखना, दक्षता, कोई बड़ी निर्भरता, आदि); पोस्ट wayback machine या copies
  • The Model View Controller in PHP

इन सभी परिचय मार्ग mechanizm के स्पष्टीकरण में शामिल हैं और इसके कार्यान्वयन का प्रदर्शन में उदाहरण के लिए, कुछ अन्य साइटों पर उपलब्ध है।

असल में, राउटर आपके आवेदन के अंदर एक प्रकार का आंतरिक "DNS" (एक लाक्षणिक अर्थ में) है। जब आपकी साइट पर कोई अनुरोध आता है, तो आपको उस अनुरोध गुणों के अनुसार उचित कार्यकर्ता वर्ग में प्रेषित करने की आवश्यकता होती है। यह राउटर का काम है।

+0

मेरा मानना ​​है कि ओप का सवाल बहुत विशिष्ट है: उचित नियंत्रक को अनुरोध कैसे रूट करें ... * नहीं * एक एमवीसी ढांचे को कैसे कार्यान्वित करें। – Madbreaks

+0

स्वयं निर्मित एमवीसी के बारे में सभी दस्तावेज रूटिंग पहलू का वर्णन बहुत अच्छी तरह से करते हैं। – Stan

+0

दूसरा लिंक मृत है – Goose