2014-07-18 21 views
5

Tôi đang đánh giá các khuôn khổ để sử dụng với API và tôi đang xem xét nghiêm túc PHP Phalcon. Nó trông đầy hứa hẹn - "nạc" (tải những gì bạn cần), nhưng với rất nhiều lựa chọn.Phalcon PHP: không có lượt xem?

Tôi tự hỏi ... có thể không sử dụng chế độ xem (mẫu, đúng hơn) với nó? Tôi có phải thiết lập chế độ xem hay tôi chỉ có thể xuất .json?

Cảm ơn!

Trả lời

-3

Vâng, bạn có thể làm điều đó, tôi đang sử dụng PHP Phalcon. Để bỏ qua xem, trong điều khiển của bạn hành động của bạn nên được như thế

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

die(); trong bộ điều khiển sẽ không làm bất cứ bố trí cha mẹ! :)

+1

tôi sẽ không thực sự khuyên bạn chết, Phalcon có rất nhiều cách khác để xử lý này. Plus nó sẽ ngừng thực hiện ý nghĩa nếu bạn có bất kỳ chức năng phổ biến được xây dựng vào afterExecuteRoute vv những phương pháp sẽ không cháy – TommyBs

+0

Oh, cảm ơn bạn, không biết về điều này! :) – Michael

7

Có một cách trong Phalcon để vô hiệu hóa xem trong hành động và tránh xử lý không cần thiết:

public function indexAction() { 

    $this->view->disable(); 

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

Tuyệt vời. Cảm ơn bạn. Có lẽ có thể đặt nó vào một hàm khởi tạo cho lớp, có lẽ, vì không có hành động nào sẽ cần một khung nhìn. –

+2

Có, bạn có thể đặt lệnh 'disable()' vào phương thức 'initialize()' controller, vì phương thức này 'được thực hiện trước, trước khi bất kỳ hành động nào được thực thi trên một controller': http://docs.phalconphp.com/en /latest/reference/controllers.html#initializing-controllers – Phantom

3

Tùy thuộc vào những gì bạn muốn làm, bạn có thể tắt chế độ xem như những người khác đã gợi ý và tiếng vang json mã hóa dữ liệu, hoặc bạn có thể sử dụng được xây dựng trong đối tượng phản ứng như sau:

$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; 

Ngoài ra còn có một hướng dẫn trong tài liệu mà đi qua xây dựng một REST api đơn giản

http://docs.phalconphp.com/en/latest/reference/tutorial-rest.html

+0

Tuyệt. Bạn sẽ làm điều này ở đâu? Trong hành động? –

+0

yes thats correct – TommyBs

0

Nếu bạn sẽ không sử dụng bất kỳ chế độ xem nào, bạn có thể tắt chế độ xem ngay từ đầu.

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

Ngay cả khi bạn làm điều này, tôi nghĩ bạn vẫn phải đặt chế độ xem DI cho khung làm việc.

Ngoài ra, nếu bạn muốn đầu ra json có một phương pháp cho rằng:

$this->response->setJsonContent($dataArray); 
$this->response->send(); 
Các vấn đề liên quan