1

私の現在のウェブコーディングの経験に対して提供された助けと忍耐に前もって感謝します。

バックグラウンド:

私は現在、家族のビジネスのためにWebベースのアプリケーションを開発しようとしています。私がC#で開発したこのシステムの現在のバージョンがありますが、システムをWebベースにし、その過程でcakephpとMVCパターンを学習したいと思います。

現在の問題:現在、PurchaseTicketを処理することになっているコントローラーでスタックしています。このチケットには、関連する顧客、広告申込情報、合計などが含まれます。コントローラーに基本的な「add()」関数を開発しようとしていますが、次の問題が発生しています。

  • 顧客を検索するためのボタン、広告申込情報を追加するためのボタン、保存ボタンなど、すべてを含むビューを作成しています。私はデスクトップアプリケーションの開発に慣れているので、同じロジックをWebベースに転送しようとしているのではないかと考えています。これは推奨される、または実行可能なものですか?

「顧客の検索」などの基本的な問題が発生しています。[新しいチケット]ページから、カスタマーコントローラーにリダイレクトし、検索して結果をセッション変数に入れるか、ポストバックしますが、残りの必要な情報を使用してプロセスを続行すると、最終的には「スパゲッティ」コード。マルチパートフォームを実行する必要がありますか?私がそうするなら、私はアプリケーションの視覚的なデザインを壊します。

今のところ、PurchaseTicketモデルをインスタンス化して、セッション変数に入れることになりました。中間データを保存するためにこれを行いましたが、モデルのインスタンス化がcakephp標準またはMVCパターンに準拠しているかどうかはわかりません。

長さをお詫び申し上げます。これはメンバーとしての私の最初の投稿です。

ありがとう!

4

1 に答える 1

0

Stack Overflowへようこそ!

ですから、いくつかの質問があるように思えますが、すべてかなり自由形式の答えがあります。これがそのような答えになるかどうかはわかりませんが、コメントに入れるよりも多くの情報があるので、ここに行きます:

何よりもまず、まだ行っていない場合は、既存のデスクトップアプリの変換に直接取り掛かる前に、CakePHPブログチュートリアルを実行してCakeに慣れることをお勧めします。

次に、CakePHPのベイクコンソールに慣れてください。これを使用してアプリのWebバージョンを開始すると、時間を大幅に節約できます。

何か実質的なことに取り組む前に、小さなプロジェクトでMVCとCakePHPを適切に把握することがどれほど重要かを強調することはできません。

第三に、WebアプリのUIはデスクトップアプリとは明らかに異なります。CakePHPの場合、サーバー上で永続的に「実行」されているものはありません。CakePHPフレームワーク全体がインスタンス化され、サーバーへのすべてのページリクエストで停止します。これは、すべてがメモリに保存され、オブジェクトのインスタンスが必要な限り存在できるデスクトップアプリから移行する場合、難しい概念になる可能性があります。デスクトップアプリを使用すると、ユーザーに別のタスク(顧客の検索など)を実行してもらい、その結果を呼び出し元のオブジェクトに送り返すことが簡単になります。このオブジェクトのインスタンスは引き続き存在します。ご存知のように、セッションに多くの情報を保存してWebアプリでこの機能を模倣しようとすると、すぐにスパゲッティコードになってしまいます。

AJAX(まだ知らない場合はグーグル)を使用して、ページの一部のみを更新し、より合理化されたUIを取得できます。これは、必要なことのように聞こえます。可能性の概要を理解するために、BambooInvoiceを確認することをお勧めします。CakePHPで構築されていませんが、別のオープンソースPHPMVCフレームワークであるCodeIgniterで構築されています。Bamboo Invoiceには、説明しているものと同様の機能がかなりあるようです(Invoiceには広告申込情報、合計、顧客などがあります)。そのため、インターフェースをどのように構成するかを理解するのに役立つ場合があります。ソースコードを掘り下げたい場合、やりたいことのいくつかをどのように達成できるか。

Bamboo Invoiceは、Ajaxを使用して、アプリに「すべてが含まれる1つのビュー」の感覚を与えます。

第4に、顧客検索の状況の特定のケースに関しては、セッション変数にデータを格納することはおそらく道のりではありません。オートコンプリートフィールドを使用すると、フィールドに文字が入力されるたびにAjaxリクエストがサーバーに送信され、サーバーから返送される提案/一致する顧客のリストが表示されます。ここで例を参照してください:http://jqueryui.com/autocomplete/。オートコンプリートの実装は完全に簡単ではありませんが、Web全体にたくさんの例とチュートリアルがあるはずです。

最後に、私は明らかにあなたのビジネスが何をしているのかわかりませんが、あなたはあなた自身を構築する前にあなたのために働くかもしれない既存のソフトウェアを調べましたか?企業が抱える多くの一般的なタスクのために、非常にリーズナブルな価格で、優れた柔軟なWebベースのソリューションがたくさんあります。独自のソリューションを構築するよりもはるかに少ない時間とお金で素晴らしい結果が得られるものがあるかもしれません。

いずれにせよ、頑張って、CakePHPを楽しんでください!

于 2013-03-10T06:15:22.953 に答える