- ベストアンサー
ウェブアプリの設計に問題がないかご指摘いただければと思います。
- 顧客情報入力フォームのバリデーションとデータ処理に問題はないか
- セッションのデータ保持とセキュリティについての問題はないか
- 異なるページを開いた際のセッションの挙動に問題はないか
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
説明が結構難しいですが、 ユーザ情報を登録するなら、その情報はuser_regist.phpみたいな処理に値を渡して その処理の中でクラスやDB関連のファイルを読み込み、操作を行う。 ユーザ情報を変更するなら、user_edit.phpみたいな処理を呼び出し、上で呼び出したクラスと同類の物を読み込んで、変更処理を行う。 という風にします。 こういう風にした場合、登録した後に確認メールを送る処理を新たに追加する場合は user_regist.phpの登録処理がうまく行った後にメール送信処理を呼び出す等と 単純な機能追加はあまり考えずに出来ます。 action.phpでやりたい処理が一つのプロセスからなるなら、まだいいのですが、 登録→OKなら登録ID(DBのauto_increment)をメールのテンプレに入れて送信 と、2種類の処理を要求したり 失敗なら一旦登録内容をエラーログに保存してから、エラーページに飛ばすとか 複数の処理を組み合わせて処理を行いたいとなると、 sessionで処理パターンを渡すのは結構大変ですし、 その処理パターンを何らかのファイルに定義しておくなら、 わざわざaction.phpを通さずにその定義ファイルを呼び出しても大して苦労は変わらない。 質問者さんのやりたい事はフレームワーク的で別に悪い方法ではないとは思いますが、 そういうシステムを構築するには少々手間がかかる そして、想定外の拡張をする際に対応しきれなくなる可能性が出てくる という危険性があります。
その他の回答 (1)
- mizutaki
- ベストアンサー率33% (111/333)
セッションの削除などをちゃんとすれば、二重投稿なども起こりませんし、 少々気にしすぎかと ただ、その設計は少々厳しい設計になると思いますよ。 リフレクションをどうとかクラス名やメソッド名という部分を見ると、 情報を取得した時点で、 登録処理を行うクラスを予約して、 実際に実行する時は、 予約した情報を元にクラスや関数を呼び出すようなやり方に見えますが、 そのような手法は手間がかかりますし、 途中でバグが混入しても、追いかけるのが大変になりやすい。 そもそも、情報を取得した時点でクラスやメソッドを予約するメリットが特にないです。 データやページ遷移の情報はセッションで持って、 処理などは全部個々のファイルやプロセスにまかせた方がいい。 クラスやメソッドを持ったまま移動して、その先で処理する方法は、 現時点ではメリットが見えません。
お礼
ご回答ありがとうございます。 私がメリットと感じた点は、入力値の渡し先が、action.phpに一元化できる点です。 クラスとメソッドを事前に予約せずに、このようにSQLメソッドの実行を1つのファイルで行ういい方法があればぜひご教授願います。 また、「処理などは全部個々のファイルやプロセスにまかせた方がいい。」の部分をもう少し具体的な実装方法として提示していただけませんでしょうか? よろしくお願いします。