私は、複数のテキストファイルからデータを取り込んだデータベースを持つCakePHPプロジェクトに取り組んでいます。私は、データベースを移植するスクリプトのほとんどを書いていませんでした(Perl/Pythonで書かれています)。いくつかの追加のテキストファイルの情報に基づいて、データベースの一部のデータを変更するために作成したPHPスクリプトがいくつかあります。私の質問は、これらのスクリプトのすべてがCakePHPアプリケーションで最高のものになっているところです。必要に応じてPHPスクリプトを使用してデータベース内の情報を再度変更できるようにする一般的な方法は何ですか?CakePHP。データベースを設定するスクリプトはどこに置くのですか?
答えて
ユーザはPHPスクリプトを使用して、必要に応じてデータベース内の情報を再度変更することができますか?
あなたがデータベースを扱っているので、ユーザーがデータベースを変更するために使用できる承認モデルを作成することが、明白な選択です。
は、ここで私がやるかもしれないものの非常に単純な例です:
class Alter extends AppModel {
// tells the model not to use a database table
public $useTable = false;
public function do_stuff() {
// your code to include scripts and alter database with, I'm assuming, raw SQL
}
}
次に、あなたが必要な今、ユーザーがデータベースを編集することができ、そのモデル
class AltersController extends AppController {
public function edit($param1, $param2) {
// code here to access the model
$this->Alter->do_stuff();
}
}
するためのコントローラを必要とするだろう。あなたのデータロジックも、モデルに適切にカプセル化されています。ここで、私はそれが実現すると信じています。
編集:
OPの質問に関して。 Here's an article that talks about using Perl with PHP。
cakePHPはMVCなので、あなたが話すすべてのスクリプトをコントローラに配置する必要があります。 したがって、あなたはテーブルが呼び出されたと言うことができます: "posts" すべてのCRUD関数がモデルに含まれている必要があります。モデルへのアクセスはすべてコントローラからのものでなければなりません。基本的には、DBと会話するロジックはモデル内になければなりません。そのロジックを呼び出す関数はコントローラ内になければなりません。私は答えを編集する前に、これが私が意味していたことをよりよく説明することを願っています
何かがあれば、コントローラではなく、モデルにこの機能を組み込む必要があります。モデル/テーブルに関連付けられたコントローラをセットアップする方法を知りたいが、代わりに未処理のSQLを使用してデータベース全体を更新する方法を知りたいとも思う。 – cspray
cakePHPは仕事のほとんどを自動的に行うので、私はまだコントローラの機能をコントローラに置くと答えていると思います。コントローラーはモデルに何をやるべきかを伝える全体の一部です。だから、あなたが何かしたいのであれば、それをコントローラーに入れます。それは、それが実行される必要があることを、モデルに指示します。 – YonoRan
はい、コントローラにコードを入れて、モデルに何をするかを伝える必要があります。しかし、あなたのコントローラは、OPが望むことをするためには、$ this-> ModelName-> model_action() 'のコード行を効果的に使うべきです。あなたの答えは、コントローラ内のすべてのビジネス/データロジックを実行する必要があることを意味しますが、これはMVCパターンを破っていると私は考えています。コントローラにデータロジックが追加されました。この同じロジックを別のコントローラで使用する必要がある場合はどうすればよいですか?私は突然、コードを複製したり、要求ごとに複数のコントローラをロードしなければならない状況に遭遇しました。 – cspray
- 1. IPython設定ファイルはどこに置くのですか?
- 2. iPhone App:どこに設定ファイルを置くのですか?
- 3. CakePHPアプリケーションでCASセッションチェックコードをどこに置くべきですか?
- 4. CI設定のソース管理に配置スクリプトを配置する場所はどこですか?
- 5. java - 設定ファイルをどこに置くか
- 6. CakePHP - 特定のレイアウトのロジックを置くのに最適な場所はどこですか?
- 7. Djangoでグローバルアプリケーション設定ルーチンをどこに置くべきですか?
- 8. CakePHPでOpenAdsを設定するには?
- 9. 特定の機能はどこに行くべきですか? CakePHP
- 10. セッション間にHTML5データベースを置くことはできますか?
- 11. この方法はどこでCakePHP主導のサイトに置くべきですか?
- 12. MySQLスクリプトで現在のデータベースを設定する
- 13. カスタムビルドアクションではどこにexeを置くのですか?
- 14. 別のサーバにスクリプトとmysqlデータベースを設定する
- 15. Cakephpルートを設定する
- 16. ダウンロードするCakePHPのバージョンと置き場所はどこですか?
- 17. データベース:外部キーをどこに置くべきか?
- 18. スクリプトを頭と体の間に置くことの違いは何ですか?
- 19. Doctrineがリポジトリファイルを置くパスをどのように設定できますか?
- 20. Androidのフォルダーにシェイプドローラーを置くのはどこですか?
- 21. カスタムレベルのフォルダはどこにXNAゲームを置くのですか?
- 22. Python exeの外にスクリプトを置くことはできますか?
- 23. WARファイルをPivotal TCサーバーに置くのはどこですか?
- 24. iPhoneアプリケーションにSQLiteデータベースファイルを置くのはどこですか?
- 25. Railsプロジェクトで既にデータベースを作成している場合、シードデータはどこに置くのですか?
- 26. データベース設計をどのように描くことができますか?
- 27. スクリプトでphp.ini変数を設定することの欠点は何ですか?
- 28. サーブレットjarファイルはTomcat 6にどこに置くのですか?
- 29. LocalApplicationDataにファイルを置くためにVSインストーラを設定するにはどうすればいいですか?
- 30. cakephpのコントローラアクションからURLを設定するには?
CSVファイルを処理し、それに応じてデータベースを移植するPerlスクリプトがあれば、CakePHPモデルロジックにどのように組み込むのですか? – lanan
CakePHPからPerlスクリプトを実行する方法を尋ねていますか?もしそうなら、それは私の範囲外です。私はPHPスクリプトを含むことに関連して答えていました。私はPerlについて話すために、私より賢い人がいると確信しています。あなたの質問のPHPスクリプトの側面を指していたことを明確にするために私の答えを編集します。 – cspray
ありがとう!私の悪い:ここに1つのポストで2つの質問....私はいくつかの未加工のSQLといくつかのPHPコード(オープン/ CSVファイルを読み取る、データベースのデータを処理するなど)を持っているプレーンなPHPで書かれたスクリプトを持って、私はフレームワークを使用することに決めました。ですから、Alterクラスのメソッドを作成してデータベースで作業し、残りのPHPスクリプトをAltersControllerに入れておく必要があります(CSVを処理して$ this-> Alter-> do_stuff();) – lanan