BEAR.Sundayでコンタクトフォームを作ってみる⑧
BEAR.Sundayでコンタクトフォームを作ってみる⑦の続きです。
コードの軽微な改良をします。
フォームの改良
入力項目はすべて必須なので、required属性を追加します。
--- a/src/Interceptor/Contact/Form.php
+++ b/src/Interceptor/Contact/Form.php
@@ -38,7 +38,8 @@ class Form implements MethodInterceptor
'id' => 'name',
'name' => 'name',
'size' => 20,
- 'maxlength' => 50
+ 'maxlength' => 50,
+ 'required' => 'required'
]
);
$filter->setRule(
@@ -60,6 +61,7 @@ class Form implements MethodInterceptor
'name' => 'email',
'size' => 20,
'maxlength' => 100,
+ 'required' => 'required'
]
);
$filter->setRule(
@@ -80,6 +82,7 @@ class Form implements MethodInterceptor
'name' => 'comment',
'cols' => 40,
'rows' => 5,
+ 'required' => 'required'
]
);
$filter->setRule(
Contact\Formリソースの改良
少々適切でない変数名を修正し、ハードコードされている管理者のアドレスをとりあえずプロパティに追い出します。
--- a/src/Resource/App/Contact/Form.php
+++ b/src/Resource/App/Contact/Form.php
@@ -17,14 +17,18 @@ use Ray\Di\Di\Inject;
class Form extends ResourceObject
{
- private $mailer;
+ private $mailerFactory;
+
+ // Email account info to receive posted data
+ private $adminEmail = 'admin@example.org';
+ private $adminName = 'Administrator';
/**
* @Inject
*/
- public function __construct(SwiftMailerFactory $mailer)
+ public function __construct(SwiftMailerFactory $mailerFactory)
{
- $this->mailer = $mailer;
+ $this->mailerFactory = $mailerFactory;
}
/**
@@ -58,10 +62,10 @@ class Form extends ResourceObject
'comment' => $comment,
];
- $mailer = $this->mailer->create();
- $mailer->setSubject('コンタクトフォーム')
+ $mailer = $this->mailerFactory->create();
+ $mailer->setSubject('Contact Form')
->setFrom($data['email'], $data['name'])
- ->setTo('admin@example.org', '管理者')
+ ->setTo($this->adminEmail, $this->adminName)
->setTemplate('mailer/contact_form.twig', $data);
// echo '<pre>'
ここまでのソースコード
GitHubで公開しました。
今日はここまでにします。
BEAR.Sundayでコンタクトフォームを作ってみる⑨へ続く。
過去記事
- BEAR.Sundayでコンタクトフォームを作ってみる① BEAR.SundayのインストールとSwiftMailerによるメール送信
- BEAR.Sundayでコンタクトフォームを作ってみる② フォームの作成
- BEAR.Sundayでコンタクトフォームを作ってみる③ Twigのautoescapeと文字化けの修正
- BEAR.Sundayでコンタクトフォームを作ってみる④ Aura Formの利用とAOP
- BEAR.Sundayでコンタクトフォームを作ってみる⑤ アプリケーションリソースの利用
- BEAR.Sundayでコンタクトフォームを作ってみる⑥ 確認ダイアログの追加
- BEAR.Sundayでコンタクトフォームを作ってみる⑦ マイクロコンテンツ
- BEAR.Sundayでコンタクトフォームを作ってみる⑧ 軽微な改良 ←今ここ
関連
Date: 2014/09/12