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>
が、このようにこれを行うのは奇妙に思えます。誰かが知っている代替/より良い/標準的な方法はありますか?