BEAR.Sundayでコンタクトフォームを作ってみる⑨
BEAR.Sundayでコンタクトフォームを作ってみる⑧の続きです。
クラスファイルに記載されているメールの設定を設定ファイルに移動します。
Contact\Formリソースの変更
メールの件名も設定できた方がいいので、ついでに設定にします。
--- a/src/Resource/App/Contact/Form.php
+++ b/src/Resource/App/Contact/Form.php
@@ -14,21 +14,29 @@ use BEAR\Resource\ResourceObject;
use BEAR\Resource\Code;
use Kenjis\Contact\Service\SwiftMailerFactory;
use Ray\Di\Di\Inject;
+use Ray\Di\Di\Named;
class Form extends ResourceObject
{
private $mailerFactory;
+ // Email subject
+ private $subject;
// Email account info to receive posted data
- private $adminEmail = 'admin@example.org';
- private $adminName = 'Administrator';
+ private $adminEmail;
+ private $adminName;
/**
* @Inject
+ * @Named("config=contact_form")
*/
- public function __construct(SwiftMailerFactory $mailerFactory)
+ public function __construct(SwiftMailerFactory $mailerFactory, $config)
{
$this->mailerFactory = $mailerFactory;
+
+ $this->subject = $config['subject'];
+ $this->adminEmail = $config['admin_email'];
+ $this->adminName = $config['admin_name'];
}
/**
@@ -63,7 +71,7 @@ class Form extends ResourceObject
];
$mailer = $this->mailerFactory->create();
- $mailer->setSubject('Contact Form')
+ $mailer->setSubject($this->subject)
->setFrom($data['email'], $data['name'])
->setTo($this->adminEmail, $this->adminName)
->setTemplate('mailer/contact_form.twig', $data);
コンストラクタで名前付きインジェクション(@Named("config=contact_form")
)を使い、引数$configに設定contact_form(配列)をインジェクトします。
設定ファイル
BEAR.Sundayの設定ファイルvar/conf/constants.phpに設定contact_formを追加します。
--- a/var/conf/constants.php
+++ b/var/conf/constants.php
@@ -24,6 +24,11 @@ return [
// optional
'master_db' => $masterDb,
'slave_db' => $slaveDb,
+ 'contact_form' => [
+ 'subject' => 'Contact Form',
+ 'admin_email' => 'admin@example.org',
+ 'admin_name' => 'Administrator',
+ ],
],
'dev' => [],
'api' => [],
これで設定を設定ファイルに追い出せました。
今日はここまでにします。
続く。
過去記事
- BEAR.Sundayでコンタクトフォームを作ってみる① BEAR.SundayのインストールとSwiftMailerによるメール送信
- BEAR.Sundayでコンタクトフォームを作ってみる② フォームの作成
- BEAR.Sundayでコンタクトフォームを作ってみる③ Twigのautoescapeと文字化けの修正
- BEAR.Sundayでコンタクトフォームを作ってみる④ Aura Formの利用とAOP
- BEAR.Sundayでコンタクトフォームを作ってみる⑤ アプリケーションリソースの利用
- BEAR.Sundayでコンタクトフォームを作ってみる⑥ 確認ダイアログの追加
- BEAR.Sundayでコンタクトフォームを作ってみる⑦ マイクロコンテンツ
- BEAR.Sundayでコンタクトフォームを作ってみる⑧ 軽微な改良
- BEAR.Sundayでコンタクトフォームを作ってみる⑨ 設定ファイル ←今ここ
関連
Date: 2014/09/13