- 1
- 2
- 3
- 4
// Привет коллеги, у меня возникла делема, куда пихать код отправки
// на e-mail сообщения? В модель формы или в контроллере оставить?
// фреймворк Yii, в самой Yii доке, написано, что в контроллерах надо
// оставлять, а вы как делаете?
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−4
// Привет коллеги, у меня возникла делема, куда пихать код отправки
// на e-mail сообщения? В модель формы или в контроллере оставить?
// фреймворк Yii, в самой Yii доке, написано, что в контроллерах надо
// оставлять, а вы как делаете?
Привет коллеги, у меня возникла делема, куда пихать код отправки на e-mail сообщения? В модель формы или в контроллере оставить? Фреймворк Yii, в самой Yii доке, написано, что в контроллерах надо оставлять, а вы как делаете?
proweber1 27.09.2015 06:38 # 0
private function sendFeedbackFromMail(FeedbackForm $model)
{
$message = "Новый отзыв на сайте\n\n"."Имя: {$model->name}\nОтзыв: {$model->message}";
$sendStatus = Yii::$app->mailer->compose()
->setTo($this->settings->email)
->setFrom(['[email protected]' => $model->name])
->setSubject('Новый отзыв на сайте')
->setTextBody($message)
->send();
return $sendStatus;
}
// TODO надо рефакторить, что-то мне подсказывает, что это говнокод
public function actionSend()
{
$model = new FeedbackForm();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
if ($this->sendFeedbackFromMail($model)) {
return $this->render('success', [
'message' => $this->settings->successMessageFromSendFeedback,
]);
}
return $this->render('fail', [
'message' => $this->settings->failMessageFromSendFeedback,
]);
}
return $this->redirect(['site/index']);
}
proweber1 27.09.2015 06:39 # 0
proweber1 27.09.2015 06:45 # 0
bormand 27.09.2015 08:22 # +2
В background worker'а.
render() само собой в топку. Из POST'ов что-то выводить - ССЗБ. Юзер нажмёт F5 или назад и у него еще раз мыло отправится... Только редирект, только хардкор.
proweber1 27.09.2015 09:31 # 0
3_14dar 27.09.2015 14:42 # +2
В пхп такое вообще существует? Там же все умирает когда клиент дисконнектится.
proweber1 27.09.2015 09:28 # 0
FlySnake 27.09.2015 10:59 # 0
https://www.google.ru/search?q=yii+background+job&ie=utf-8&oe=utf-8&gws_rd=cr&ei=JKEHVq6zEcaGywOFlJXoCg