<?php
use Yaf\Controller_Abstract;

/**
 * 每个项目按需定义异常处理，记录日志等，确定的异常请在自定义异常处理，详细在exception目录中查看
 */
class ErrorController extends Controller_Abstract
{
    use \Helpers\ApiResponse;

    public function errorAction($exception)
    {
        if (\Yaf\Application::app()->environ() == 'dev') {
            // var_dump($exception);
        }
        if ($exception->getPrevious() !== NULL) {
            $exception = $exception->getPrevious();
        }
        switch ($exception->getCode()) {
            // 404
            case YAF\ERR\NOTFOUND\MODULE:
            case YAF\ERR\NOTFOUND\CONTROLLER:
            case YAF\ERR\NOTFOUND\ACTION:
            case YAF\ERR\NOTFOUND\VIEW:
                // todo 各项目自定义
                // log
                // LogUtil::ERROR('error code'.$exc->getCode(), '', $exc);
                $this->failed(10, 'failed', 'reason');
                return false;
                break;
            default:
                // todo 各项目自定义
                // log
                $reason = '服务器忙, 请稍后再试[' . $exception->getCode() . ']';
                $this->failed($exception->getCode(), 'failed', $reason);
                return false;
        }
    }
}
