いくつかのプロジェクトではデータベースが必要ないので、データベース構成を変更せずにローカルマシンに Cakephp をセットアップするにはどうすればよいでしょうか? 今私がやったこと...データベースを作成し、構成ファイルを変更しました。しかし、私のデータベースにはテーブルがなく、データベースが無駄になっているだけです....だから、これを行うためのより良い方法を提案してください。
前もって感謝します..
いくつかのプロジェクトではデータベースが必要ないので、データベース構成を変更せずにローカルマシンに Cakephp をセットアップするにはどうすればよいでしょうか? 今私がやったこと...データベースを作成し、構成ファイルを変更しました。しかし、私のデータベースにはテーブルがなく、データベースが無駄になっているだけです....だから、これを行うためのより良い方法を提案してください。
前もって感謝します..
CakePHP 2.3.x では、データベース構成で空の文字列をデータソースとして使用するだけで、正常に動作します。
データベース構成 ( app/Config/database.php ) はほとんど空で、次のようになっています。
class DATABASE_CONFIG {
public $default = array(
'datasource' => '',
);
}
AppModel に DB テーブルを使用しないように指示する必要があります。そうしないと、「データソース クラスが見つかりませんでした」というエラーが発生します。子孫モデルのみで $useTables を設定するだけでは不十分です。
class AppModel extends Model {
public $useTable = false;
}
私はまだそれで問題を経験していません。
テーブルを使用しない場合でも、Cakephp は実際にデータベースに接続しようとするため、これを使用します。
class MyModel extends AppModel {
public $useTable = false;
}
それは単なる間違いです。cakephp でアプリケーションを作成するのは簡単なことです。データベースを使用せずに開発を開始するには、次の手順を実行する必要があります。
app/Model/Datasource/Dbo/ にファイル DboFakeDboSource.php を作成し、次のコードを入れます
class DboFakeDboSource extends DboSource {
function connect() {
$this->connected = true;
return $this->connected;
}
function disconnect() {
$this->connected = false;
return !$this->connected;
}
}
次のステップは、cakephp にデフォルトで dbo ソースを使用するように指示することです。database.php のデフォルト接続を次のように変更します
var $default = array(
'driver' => 'FakeDboSource'
);
3 番目のステップは、$useTable = false; であることを確認することです。すべてのモデルに含まれているので、AppModel.php に追加します。
database.php でデフォルトのデータソース設定を空のままにし、使用するモデルについては、次のように DB で対応するテーブルが必要ないことを指定します。
class MyModel extends AppModel {
public $useTable = false;
}