Niko
Надо: добавить контроллер??? Может надо добавить экшен, не контроллер?
Andrey
Andrey
Andrey
мне чот кажется еще UrlManager надо настроить
👀
Всем привет. Подскажите, пожалуйста: когда запускаю приложение в продакшн (без YII_DEBUG и YII_ENV) то на любые exception'ы выбрасывается 404. Это нормальное поведение, и в принципе понятно зачем, но у меня есть некоторые экшны, для которых выбросить эксепшн при ошибке - нормальное поведение. Возможно-ли как-то для некоторых экшнов (контроллеров?) отключить автоматический выброс 404 при ексепшнах?
Alexey
нет
Alexey
500 и прочие ошибки должны норм работать
Yuri
если апач или nginx
Yuri
он может в настройках сервера
Yuri
редиректить на 404
👀
не, это не в настройках сервера
это именно поведение yii
я думаю что где-то есть какой-то хук, который срабатывает на эксепшн, и если YII_ENV !== 'dev' - выбрасывает 404
Yuri
Yuri
500-ть должен
Yuri
что в логах сервера
Yuri
500 или 404
👀
ок
смотри
я использую basic темплейт
в index.php есть две строки:
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
в общих чертах, наличие этих строк отвечает за дебаг приложения
👀
то есть когда я заливаю на прод, я эти строки комментирую
👀
когда приложение в дебаге - ошибка возвращается нормально (в коде обычный throw new \Exception())
👀
когда приложение в "боевом" режиме - 404
Yuri
покажи пример кода exception
👀
это нормальное поведение: как-бы твои пользователи не должны увидеть стек трейс или исключение, в случае если ты где-то забыл его обработать
насчёт ошибок с кодом 500+ не знаю - не проверял.
если получится поправить одними лишь кодами ответа - будет не плохо, но лучше было-бы найти сквозное решение
👀
SiZE
Yuri
\yii\web\HttpException(601, 'Upper case character not found')
👀
для меня, но "начальник" сказал что за поддомены платить надо...
Yuri
ну там 500 все дела
👀
я спорить не стал
Yuri
Yuri
за хня)
SiZE
👀
да тут просто в команду к "динозаврам" попал сразу
SiZE
это ж банальная маршрутизация
SiZE
/ -> сюда
/admin/ -> туда
👀
круто, я знаю
но как это мне поможет?
Yuri
Yuri
throw new HttpException(404 ,'User not found');
Yuri
либо так
Yuri
Так же существуют классы со звучными именами для наиболее часто используемых типов ошибок, благодаря которым вам не нужно запоминать код ответа.
BadRequestHttpException — 400 ошибка
UnauthorizedHttpException — 401 ошибка
ForbiddenHttpException — 403 ошибка
NotFoundHttpException — 404 ошибка
MethodNotAllowedHttpException — 405 ошибка
NotAcceptableHttpException — 406 ошибка
ConflictHttpException — 409 ошибка
GoneHttpException — 410 ошибка
UnsupportedMediaTypeHttpException — 415 ошибка
TooManyRequestsHttpException — 429 ошибка
ServerErrorHttpException — 500 ошибка
Все они отнаследованы от \yii\web\HttpException и не нуждаются указании кода ответа.
Yuri
аа
SiZE
Yuri
http://www.yiiframework.com/doc-2.0/yii-web-httpexception.html
Yuri
туда же
Yuri
ну комментить
Yuri
а ставишь false
Yuri
просто
👀
лол
👀
ребята
👀
вы смотрели index.php?
Yuri
👀
SiZE
👀
comment
👀
как-бы в index.php самом написано
👀
comment
👀
two lines
SiZE
эмм.. ок
SiZE
значит все ок )
👀
эх, юишный чатик
годы идут, а относятся всё равно каждый раз как к джуну какому-то
Yuri
хорошо закомментил
Yuri
окей
Yuri
ты прочитал что я тебе кидал?
Yuri
посмотрел хотябы?
Yuri
👀
да, я глянул
я сейчас другой задачей занят, с ней закончу - попробую
👀
лучше заранее задать вопрос :)
Yuri
попробуй должно выйти
Yuri
не всегда)
Yuri
есть правило еще 20 минут)
Yuri
там просто погуглить 5 минут и 10 прочесть)
Yuri
5 попробовать)
Yuri
а потом уже) можно)
👀
👀
я не думал что оно на HttpException как-то по другому реагирует
Yuri
ты пропустил там код ошибки
Yuri
50х 40х 30х
👀
да, я видел
Yuri
там либо использовать класс либо с кодом