0

ColdFusion で処理するためにフォームを送信するために、Ajax (Jquery) を頻繁に使用します。フォームを CFC に送信し、CFC は結果とエラーを Ajax 通知を通じてユーザーに返します。

フォームは非常に大きくなる可能性があり (入力が追加された完全な HTML ページを考えてください)、フォームで選択されたオプションに応じて、正しく処理するために CFC に多くのロジックが必要になります。

CFC 内の各関数は大きくなる可能性があるため (おそらく 1200 行のコード)、ColdFusion から恐ろしい「ブランチ ターゲット オフセットが大きすぎて短い」というエラーが表示されます。これを回避するために、いくつかのコードを .cfm ファイルに<cfinclude>入れ、問題を「解決」するコードを cfc に戻すために使用しましたが、すべての小さなスニペットを特定の CFC に関連付けるために整理しようとすると、混乱するように感じます。また、非効率な作業方法である可能性もあります。

他の ColdFusion ユーザーが、フォーム データをデータベースに取得する際に多くの追加作業を行う CFC を使用してフォームを構造化/処理する方法を知りたいです。

私が考えたいくつかのオプションは次のとおりです。

  • コードがあまり含まれていない作成、更新、読み取り、および削除アクションの「シェル」関数を作成する
  • シェル関数内ではcfinclude、コードを最小限に抑えるために、他の多くの .cfm ファイルからのサブ関数ごとのすべてのコード スニペット
  • または、サブ機能を実行し、フォーム変数を引数として渡す他の CFC を呼び出します。

上記のオプションは、私がこのような構造を持つことになります(私は好きではありません):

Article.cfc (CreateArticle, EditArticle etc)
  CreateArticle_InsertImage.cfc
  CreateArticle_ProcessBodytext.cfc
  CreateArticle_InsertUser.cfc
  CreateArticle_CheckIfExistingArticle.cfc
  EditArticle_UpdateImage.cfc
  EditArticle_UpdateBodytext.cfc
  EditArticle_CheckIfExistingArticle.cfc

私は、それ自体がクラス/オブジェクトであるのではなく、関数ごとに新しい CFC を作成することになります。それらは代わりにCFMファイルである可能性があります(そして使用します<cfinclude>が、このようにこれを行うのは奇妙に思えます。誰かが知っている代替/より良い/標準的な方法はありますか?

4

1 に答える 1