FuelPHPでメールフォーム雑感。

FuelPHP Advent Calendar 2011 : ATNDの19日目です。

前日の18日目は @NEKOGETさんの FuelPHPの呼び方。 でした。

私はプログラマーではないので、フレームワークはcakephpとcodeigniterしか触ったことが無いです。

cakephpに関して言えば、mysqlの設定がわからず挫折。
その数年後にcodeigniterに出会い、データベースの設定いらずのフレームワークに感動し、codeigniterでメールフォームをひたすら作って満足していました。
が、ライセンスの問題でcodeigniterを選択することがデメリットになる可能性が出てきた模様です。(自分自身詳しくはわかっていない状態ですが。)
そんな状況の中でFuelPHP Advent Calendar 2011 : ATNDなるイベントに出会ったので、この機会にfuelphpを触ってみよう。と思った次第です。

私がphpで作りたいものといえばメールフォームくらいなものです。
ですので、codeigniterのバリデーションは非常に便利でしたし、チェックボックス、ラジオボタン、セレクトボックスの値の保持機能には本当に助けられて来ました。
そして、世界中のプログラマーが利用しているという安心感がcodeigniterを選択するメリットでした。

大げさかもしれませんが、
フレームワークを使えばこんな私でもプログラマーになれる!
といったような安心感がフレームワークにはあります。

fuelphpのhello world

hello worldは非常に簡単でした。zipファイルをダウンロードしてきて解凍し、ブラウザでアクセスするだけです。hello worldと打ちこむ必要さえありませんでした。

fuelphpの日本語メール送信

さて次は、最大の目的の日本語メールの送信です。
結果から言うと、日本語の「送信者」、「件名」は文字化けしました。
しかしメールは送信されました。
メールさえ送信されれば残る問題は日本語へのエンコード処理だけのように思われますが、
非常に深刻な問題がまだ残っていました。。
それを下記に書きます。

fuelphpにはチェックボックス、ラジオボタン、セレクトボックスの値の保持機能は、無い。

追記(2012.04.20):Fieldsetクラスを使うと実現できるようです。

メールフォームの、
「確認画面」へ遷移した時にチェックされた値の再表示と、
「確認画面 → 入力画面へ戻る」の画面遷移を実行した時のチェックされた値の再表示
する機能です。

fuelphpには実は存在する機能なのかもしれませんが、私には見つけられていません。
fuelphpのフォーラム(英語)ではチェックボックスまわりの話題が出ていますので追いかければ値を保持するコードを見つけることができるかも知れませんが、私はまだ見つけていません。

まとめ

fuelphpはcodigniterから比べて、よりプログラマー寄りなフレームワークだと感じました。
しかしcakephpよりはシンプル(シンプルという表現が正しいかどうかわかりませんが。)だと思いました。

私個人の次のステップとしては、

などの他のライブラリやフレームワークも調べてみる。

もしくは、fuelphpを拡張して、自分の欲しい機能のコードを書いてみる。
と言った選択肢が残ったかなといったところです。
メールフォームを楽して構築するための旅は続く。。。

明日は、@kenji_sさんのFuelPHP でのセキュリティ対策(1) – A Day in Serenity @ Kenjiです。

5 thoughts on “FuelPHPでメールフォーム雑感。

  1. kenjis

    コンタクトフォームのサンプルコードに、チェックボックス、ラジオボタン、セレクトボックスを追加してみました。

    確かに、このようなコーディングだと、値の保持のためのコードが必要になりますね。

    あとは、FuelPHPにはFieldsetクラスというのがあり、それを使うとどうなるかですね。

    返信
  2. ピンバック: FuelPHP Advent Calendar 2011

    1. admin

      あらー。。。なんかパッと見た感じ、
      PEARのQuickFormみたいな使い方できるんですかね。
      だとしたらcodeigniterより確認画面作りやすいし、
      流用と修正がしやすそうな感じでしょうか。

      最近はpearとwordpressを弄ってまして、FulePHPを弄れてないです。
      ゴールデンウィークまでは仕事に集中せざるを得ないかもしれません。

      返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA