2009-06-05 9 views
2

フォームを開発する私の最初の戦略は、次のようなものでした:フォームを同じページとページハンドラに戻すPOST変数を探して適切なアクションを行い、ページコンテンツを表示します。最初はすべてが薔薇色だった。私は現在の状態を追跡するために私のフォームとページの中に隠しフィールドを置き、ビュー、編集、または状態を追加するページを表示するためにページ上にステートマシンを実装することができます。しかし2ヵ月後、私のページはIFとブランチで謎めいたステイトフルなモンスターに変身し、維持することが不可能になり、隠されたフィールドでページとクライアントの間で交換された状態は「体重に挑戦しました」。でる。生のPHPを使用したHTTPフォーム

私は間違っていますか?これは本質的に難しいですか?私はASP Webフォームの再発明の滑りやすい斜面を下っていますか?これはどのように正しく行われますか?

(PHP)の背後にある技術は無関係です。私の質問は、基本的に2つのフィールドを取って「ありがとう」ページに転送する以外のことをするHTTPフォームを行う方法です。

答えて

1

は、スケーラビリティを無視する以外は、が間違っています。あなたの最初のスコープでは、POSTハンドリングは魅力的に機能しましたが、アプリケーションが増えたり、カスタムフレームワークを使用し始めるプロジェクトが増えたりすると、コードはますます多くなりました。メンテナンスの悪夢に。

ソリューションを使用すると、基本的に一般的なタスクを繰り返すことは決してないだろう、とすべてのアプリケーションが同じ構造とフローを有するようなCodeIgniterCakePHPSymfonyまたはその他として設立フレームワークを使用することです。これらのいずれかを始めるための簡単な動画があります。

ASP.NETに言及するときにViewStateを模倣しようとしていると仮定しますが、これは実際には必要ありません。これらのフレームワークにはそれぞれ、フォーム提出と検証を処理するための組み込みメソッドがあり、jQueryなどのクライアント側テクノロジと組み合わせることで、リッチなアプリケーションを簡単に構築できます。

1

もっと「ステートレス」な感じをしたい場合は、セッションをチェックしてください。
http://us3.php.net/manual/en/book.session.php

小規模で独立したフォームでは、あなたのメソッドはかなりうまく動作しますが、大規模なWebアプリケーションの場合は少し良いものが必要です。

1

このスタイルは確かにポイントまで使用可能です。いくつかの規律が必要です。自分の方法論を説明しましたhere。物事が複雑すぎる場合や、チームが成長した場合は、実際のフレームワークを使用することになります。 (Djangoはちょうどいいです!)

関連する問題