ユーザーが写真をアップロードしてタイトルを付けることができる単純な Web サイトがあります。
アップロード フォームは、JavaScript を使用しない場合と JavaScript を使用する場合 (XHR を使用したレイヤー上のフォームとして) で機能する必要があります。
私は持っています:
- Form_Upload
- Model_Post (ゲートウェイ/マッパーを使用)
- UploadController
- SuperDuper - ファイルのアップロード、サムネイルの生成、画像の保存などを処理するクラス/リソース。
UploadController::uploadAction で行う必要があると思うことは次のとおりです。
- 新しいフォームを作成
- POST リクエストか GET リクエストかを確認する
- XHR リクエストか通常のリクエストかを確認する
- フォームの確認
- フォームからファイルをダウンロード/受信
- ファイルの MIME タイプを検証する
- SuperDuper を使用してファイルを変換し、添付ファイル ID を返す
- 問題がなければ、投稿データを添付ファイル ID とともにデータベースに保存します
- 適切なコンテキストで応答を返す
- 適切なコンテキストでエラー メッセージ/フォーム エラーを返す
そして、1 つのアクションで多くのことを行うように思えます。
また、このアクションはさまざまなコンテキスト (GET、XHR POST、POST) を処理する必要があるため、多くの「if」があります。
そのようなケースを処理するための良いZendの方法はありますか(そして、それはかなり人気のある方法だと思います)。リクエストの一部、またはコンテキストに応じたリクエストを処理するために、コントローラに追加のプライベート関数を作成する必要がありますか?
私のアクションは現在 140 行の長さで、間違っているようです。