Yii::app()->end()
Я думаю, что это решение не лучший способ завершить поток приложения, потому что оно использует функцию PHP exit()
, что означает немедленный выход из потока выполнения. Да, есть обработчик Yii onEndRequest
и PHP register_shutdown_function
, но он все еще остается слишком фаталистическим.
Для меня лучший способ это
public function run($actionID)
{
try
{
return parent::run($actionID);
}
catch(FinishOutputException $e)
{
return;
}
}
public function actionHello()
{
$this->layout=false;
header('Content-type: application/json');
echo CJavaScript::jsonEncode($arr);
throw new FinishOutputException;
}
Итак, поток приложения продолжает выполняться даже после.