public function step3(InstallApplication $app, Request $request)
{
$form = $app['form.factory']->createBuilder('install_step3')->getForm();
$sessionData = $this->getSessionData($request);
if (empty($sessionData['shop_name'])) {
$config_file = $this->config_path . '/config.yml';
$fs = new Filesystem();
if ($fs->exists($config_file)) {
// すでに登録されていた場合、登録データを表示
$this->setPDO();
$stmt = $this->PDO->query("SELECT shop_name, email01 FROM dtb_base_info WHERE id = 1;");
foreach ($stmt as $row) {
$sessionData['shop_name'] = $row['shop_name'];
$sessionData['email'] = $row['email01'];
}
// セキュリティの設定
$config_file = $this->config_path . '/path.yml';
$config = Yaml::parse(file_get_contents($config_file));
$sessionData['admin_dir'] = $config['admin_route'];
$config_file = $this->config_path . '/config.yml';
$config = Yaml::parse(file_get_contents($config_file));
$allowHost = $config['admin_allow_host'];
if (count($allowHost) > 0) {
$sessionData['admin_allow_hosts'] = Str::convertLineFeed(implode("\n", $allowHost));
}
$sessionData['admin_force_ssl'] = (bool) $config['force_ssl'];
// メール設定
$config_file = $this->config_path . '/mail.yml';
$config = Yaml::parse(file_get_contents($config_file));
$mail = $config['mail'];
$sessionData['mail_backend'] = $mail['transport'];
$sessionData['smtp_host'] = $mail['host'];
$sessionData['smtp_port'] = $mail['port'];
$sessionData['smtp_username'] = $mail['username'];
$sessionData['smtp_password'] = $mail['password'];
} else {
// 初期値にmailを設定
$sessionData['mail_backend'] = 'mail';
}
}
$form->setData($sessionData);
if ($this->isValid($request, $form)) {
$data = $form->getData();
return $app->redirect($app->url('install_step4'));
}
return $app['twig']->render('step3.twig', array('form' => $form->createView(), 'publicPath' => '..' . RELATIVE_PUBLIC_DIR_PATH . '/'));
}