2014-07-18 10 views
5

मैं एपीआई के उपयोग के लिए ढांचे का मूल्यांकन कर रहा हूं, और मैं PHP फाल्कन पर गंभीर नजर डाल रहा हूं। यह आशाजनक दिख रहा है - "दुबला" (आपको जो चाहिए वह लोड करें), लेकिन कई विकल्पों के साथ।PHP फाल्कन: कोई विचार नहीं?

मुझे आश्चर्य है ... क्या इसके साथ विचार (टेम्पलेट्स, बल्कि) उपयोग करना संभव है? क्या मुझे एक दृश्य स्थापित करना है, या मैं सिर्फ आउटपुट कर सकता हूं। जेसन?

धन्यवाद!

उत्तर

-3

हाँ, आप इसे कर सकते हैं, मैं PHP फाल्कन का उपयोग कर रहा हूं। उपेक्षा करने के लिए, अपने नियंत्रक में अपनी कार्रवाई

तरह
public function indexAction() { 
    $var = array or other data 
    die(json_encode($var)); 
} 

नियंत्रक में die(); किसी भी माता-पिता लेआउट से नहीं चल पाएगी होना चाहिए! :)

+1

मैं वास्तव में मरने की सिफारिश नहीं होगा, फाल्कन अन्य तरीकों से इस संभाल करने के बहुत सारे है। इसके अलावा यह अर्थ निष्पादित करना बंद कर देगा यदि आपके पास एक्सेक्यूट रूट आदि के बाद बनाई गई कोई सामान्य कार्यक्षमता थी। वे विधियां – TommyBs

+0

नहीं आग लगेंगी, धन्यवाद, आपको इसके बारे में पता नहीं था! :) – Michael

7

कार्रवाई में देखने को अक्षम करें और अनावश्यक संसाधन से बचने के लिए फाल्कन में एक तरीका होता है:

public function indexAction() { 

    $this->view->disable(); 

    $this->response->setContentType('application/json'); 
    echo json_encode($your_data); 
} 
+1

बहुत बढ़िया। धन्यवाद। शायद इसे वर्ग के लिए प्रारंभिक कार्य में डाल सकता है, शायद, क्योंकि किसी भी कार्रवाई को देखने की आवश्यकता नहीं होगी। –

+2

हां, आप 'अक्षम()' कॉल को 'प्रारंभिक()' नियंत्रक विधि में डाल सकते हैं, क्योंकि नियंत्रक पर किसी भी क्रिया को निष्पादित करने से पहले इस विधि को पहले निष्पादित किया जाता है: http://docs.phalconphp.com/en /latest/reference/controllers.html#initializing-controllers – Phantom

3

क्या आप आप दृश्य निष्क्रिय कर सकते हैं करने के लिए के रूप में दूसरों का सुझाव दिया है और गूंज json एन्कोडेड चाहते हैं उसके आधार डेटा, या आप इस्तेमाल कर सकते हैं नीचे के रूप में प्रतिक्रिया ऑब्जेक्ट में बनाया गया:

$this->view->setRenderLevel(View::LEVEL_NO_RENDER); 
    $this->response->setContentType('application/json', 'UTF-8'); 
    $this->response->setJsonContent($data); //where data is an array containing what you want 
    return $this->response; 

वहाँ भी है डॉक्स है कि एक साधारण REST API

के निर्माण के ऊपर जाता है में एक ट्यूटोरियल

+0

कूल। आप यह कहां करेंगे? कार्रवाई में? –

+0

हाँ यह सही है – TommyBs

0

यदि आप किसी भी विचार का उपयोग नहीं करेंगे तो आप बहुत शुरुआत में विचारों को अक्षम कर सकते हैं।

$app = new \Phalcon\Mvc\Application(); 
$app->useImplicitView(false); 

भले ही आप ऐसा करते हैं, मुझे लगता है कि आपको अभी भी फ्रेम को काम करने के लिए डीआई को सेट करना होगा।

इसके अलावा, वहाँ उस के लिए एक विधि है अगर तुम उत्पादन json हैं:

$this->response->setJsonContent($dataArray); 
$this->response->send(); 
संबंधित मुद्दे