我正在创建各种"我的版本"的web服务。基本上,它是一个有很多动作的yii控制器。。每个动作如下
public function actionNameOfWebService()
{
if(isset($_POST))
{
// do some processing, when I have a result... I do ..
print CJSON::encode('result.');
}
else
{
print CJSON::encode('only post methods allowed');
}
}
许多这样的操作都在一个特定的控制器中。一切都很好。。在我投入生产之前,我是否需要添加一个"die"每次打印后的语句CJSON::encode语句。
由于您使用的是Yii,您应该简单地使用:
Yii::app()->end();
http://www.yiiframework.com/doc/api/1.1/CApplication#end-详细
否。您并不绝对需要die
或exit
。我认为使用它有点反模式。它破坏了封装。
如果您设置了某种输出缓冲,那么die
实际上可能不好。如果你代理一个请求,die
将终止整个过程等。还有更多类似的场景。
您肯定应该使用Yii::app()->end();
。这是因为如果您有任何调试输出或分析输出,除非您告诉应用程序完成,否则这些输出也将包含在响应中。如果您不包括这一点,您的验证可能会中断。
您不必这样做,但当您添加它时,您将确保在JSON之后不会打印任何内容,这将破坏解析器读取该数据的尝试。
但是,如果您知道没有其他内容,您可以跳过它。