お問い合わせフォームを作ってみる -ライブラリ編-

こんにちは、ユアサです。
前回の記事でも記述していた通りフォーム作成をしていこうと思っていましたが、それより以前の記事で紹介したComposerを使用して(どうせなら勉強したことの実践も兼ねて)既存のライブラリを活用していく方向にしようかな?と考えました。
なので、今回はフォーム作成をするにあたってComposerで使えるPHPのライブラリを紹介します。
Composerについてはこちらをご覧ください。

tech.arms-soft.co.jp

PHPMailer

PHPMailerはSMTPサーバを利用してメールを送信するためのPHPのライブラリです。あまりにも鉄板なライブラリの為、知っている方も多いかと思います。
PHPMailerを使えば、MAMPなどのローカル環境で外部のSMTPサーバを使ってメールを送信することができます。HTMLメールや添付ファイルを使ったメールを送るなどの場合はPHPMailerを使うと簡単です。

(公式のサンプルコードから拝借したものですが)例えば以下のように設定できます。
送信者・受信者のメールアドレスや件名を設定できるのはもちろん、HTML形式またはテキスト形式の本文を設定できたり、このコードには記載されていませんが返信用アドレスやCc受信者の設定などを簡単に実装できます。

<?php

/**
 * This example shows sending a message using PHP's mail() function.
 */

//Import the PHPMailer class into the global namespace
use PHPMailer\PHPMailer\PHPMailer;

require '../vendor/autoload.php';

//Create a new PHPMailer instance
$mail = new PHPMailer();
//Set who the message is to be sent from
$mail->setFrom('from@example.com', 'First Last');
//Set an alternative reply-to address
$mail->addReplyTo('replyto@example.com', 'First Last');
//Set who the message is to be sent to
$mail->addAddress('whoto@example.com', 'John Doe');
//Set the subject line
$mail->Subject = 'PHPMailer mail() test';
//Read an HTML message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
$mail->msgHTML(file_get_contents('contents.html'), __DIR__);
//Replace the plain text body with one created manually
$mail->AltBody = 'This is a plain-text message body';
//Attach an image file
$mail->addAttachment('images/phpmailer_mini.png');

//send the message, check for errors
if (!$mail->send()) {
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message sent!';
}

PHPでも元々mail関数があり簡単にメール送信は実装できますが、付加機能を追加する際には難しい作業が増えてくるので、メール機能の実装・追加機能等諸々を一括で可能にするPHPMailerで実装してみたいと思います。

Valitron

以前に弊社でブログ記事にまとめていましたバリデーションライブラリ「Valitron」です。
標準でバリデーションルールが用意されているのでとてもシンプルかつコンパクトにバリデーション設定ができます。 以下のブログ記事で既にどういったものなのかは詳しく説明されているのでこの記事では詳細は省きますが、標準のルールのみならずカスタムバリデーションルールも追加していく事ができればと思います。

tech.arms-soft.co.jp

エラーメッセージもカスタムできるので、細かいバリデーションも難なくこなせそうですね!

まとめ

今回はお問い合わせを想定したフォーム作成に使いたい2つの便利なPHPライブラリについて書きました。
次回作成するフォームでは上記2つのライブラリを使いますが、これら以外にも使いやすい、簡単な、あるいはシンプルなライブラリも多いかと思うので色々試してみたいと思います! 最後まで読んでいただきありがとうございました(^人^)