すぐにポイント:MVCコンテキストでは、どこにクラスを入れますか?
私はKohanaを使用しています。私はプレーンなPHPで書かれた別のスクリプトを見ています。スクリプトには、クラスShoppingCartがあります。スクリプトをKohanaに変換する場合は、クラスとそのメソッドとプロパティをどこに入れるのですか?
これは既存のデフォルトコントローラーにありますか?それとも別のコントローラに入れてもいいですか?または、noobieとして聞こえるかもしれませんが、私はモデルに入れますか?
すぐにポイント:MVCコンテキストでは、どこにクラスを入れますか?
私はKohanaを使用しています。私はプレーンなPHPで書かれた別のスクリプトを見ています。スクリプトには、クラスShoppingCartがあります。スクリプトをKohanaに変換する場合は、クラスとそのメソッドとプロパティをどこに入れるのですか?
これは既存のデフォルトコントローラーにありますか?それとも別のコントローラに入れてもいいですか?または、noobieとして聞こえるかもしれませんが、私はモデルに入れますか?
これは、私が想定しているクラスの詳細によって異なります。正直言って私はKohanaについては何も知らないが、どこかに "ベンダーファイル"があるかもしれない。たぶんそこに置いて、あなたのコントローラにそのためのラッパー関数を書くのが最善です。クラスが既にKohanaとうまく統合されている場合は、コントローラまたはモデルとして直接使用することもできます。または、コントローラとして機能させるために書き直す時間が必要な場合もあります。
ここでは、最適な場所のみを評価することができます。
Kohanaにはサードパーティのライブラリ用のフォルダがあります。主なものはシステム/ベンダーの下にあります。あなたはそれをアプリケーションに入れることもできます。
多くのPHPクラスローダは、クラスを自動的にロードする場合は、ファイル名がクラス名と同じである必要があります(少なくともKohanaのドキュメントで読んだもの)。
アプリでサードパーティのコードを使用する必要がある場合は、アプリ/モジュールフォルダに「vendor」という名前のフォルダを作成し、そこにすべてのコードを配置することをおすすめします。
その後、呼び出すことによって、ファイルを含めることができます。ニーズはあなたも外部ライブラリのラッパーを作成することができることならば
include kohana::find_file('vendor', 'filename');
は、この良い例は、サードパーティスウィフトのメールライブラリを使用していますthe email helperです。
自分のクラスをkohanaに移植する場合は、そのクラスが何をしているのかを考え、それに応じて分類する必要があります。
クラスが何らかの種類のデータベースから項目を取得する場合は、それをモデルにする必要があります。ライブラリは通常、認証、カレンダー生成など、コントローラ/モデル間で再利用したいコードのセットです。コントローラは、モデルからビュー/ライブラリにデータを渡すために使用されます。
はKohanaの規則を1として、あなたはアプリケーション/ライブラリフォルダにカスタムクラスを配置する必要があります。しかし、このためには、クラスをそこに置いた後にクラスを動作させる方法を知る必要があります。あなたがそれを理解できない場合は、あなたのコントローラに入れたり、別のコントローラーを作るなど、何でもできます。