我正在评估与API一起使用的框架,我正在认真研究PHP Phalcon。它看起来很有前途 - “精益”(加载你需要的东西),但有很多选择。
我在想......是否可以不使用视图(模板,而不是)?我是否必须设置视图,或者我可以输出.json?
谢谢!
答案 0 :(得分:7)
Phalcon中有一种方法可以禁用操作中的视图并避免不必要的处理:
public function indexAction() {
$this->view->disable();
$this->response->setContentType('application/json');
echo json_encode($your_data);
}
答案 1 :(得分: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
http://docs.phalconphp.com/en/latest/reference/tutorial-rest.html
答案 2 :(得分:0)
如果您根本不使用任何视图,则可以在一开始就禁用视图。
$app = new \Phalcon\Mvc\Application();
$app->useImplicitView(false);
即使你这样做,我认为你仍然需要设置视图DI以使框架起作用。
另外,如果你想输出json,有一种方法:
$this->response->setJsonContent($dataArray);
$this->response->send();
答案 3 :(得分:-3)
是的,你可以做到,我使用的是PHP Phalcon。 要忽略视图,在控制器中,您的操作应该是
public function indexAction() {
$var = array or other data
die(json_encode($var));
}
控制器中的 die();
将不会呈现任何父布局! :)