Eccube\Controller\ForgotController::index PHP Метод

index() публичный Метод

パスワードリマインダ.
public index ( Application $app, Request $request ) : RedirectResponse | Response
$app Eccube\Application
$request Symfony\Component\HttpFoundation\Request
Результат Symfony\Component\HttpFoundation\RedirectResponse | Symfony\Component\HttpFoundation\Response
    public function index(Application $app, Request $request)
    {
        $builder = $app['form.factory']->createNamedBuilder('', 'forgot');
        $event = new EventArgs(array('builder' => $builder), $request);
        $app['eccube.event.dispatcher']->dispatch(EccubeEvents::FRONT_FORGOT_INDEX_INITIALIZE, $event);
        $form = $builder->getForm();
        $form->handleRequest($request);
        if ($form->isSubmitted() && $form->isValid()) {
            $Customer = $app['eccube.repository.customer']->getActiveCustomerByEmail($form->get('login_email')->getData());
            if (!is_null($Customer)) {
                // リセットキーの発行・有効期限の設定
                $Customer->setResetKey($app['eccube.repository.customer']->getUniqueResetKey($app))->setResetExpire(new \DateTime('+' . $app['config']['customer_reset_expire'] . ' min'));
                // リセットキーを更新
                $app['orm.em']->persist($Customer);
                $app['orm.em']->flush();
                $event = new EventArgs(array('form' => $form, 'Customer' => $Customer), $request);
                $app['eccube.event.dispatcher']->dispatch(EccubeEvents::FRONT_FORGOT_INDEX_COMPLETE, $event);
                // 完了URLの生成
                $reset_url = $app->url('forgot_reset', array('reset_key' => $Customer->getResetKey()));
                // メール送信
                $app['eccube.service.mail']->sendPasswordResetNotificationMail($Customer, $reset_url);
                // ログ出力
                $app['monolog']->addInfo('send reset password mail to:' . "{$Customer->getId()} {$Customer->getEmail()} {$request->getClientIp()}");
            }
            return $app->redirect($app->url('forgot_complete'));
        }
        return $app->render('Forgot/index.twig', array('form' => $form->createView()));
    }