我们如何设置没有数据库的cakephp?

时间:2013-03-16 12:17:00

标签: cakephp-2.1

在少数项目中我们不需要数据库,那么我们如何在本地机器上设置cakephp而不修改数据库配置?现在我做了什么......我创建了数据库并修改了配置文件。但我的数据库没有表,它只是数据库的浪费....所以请建议更好的方法来做到这一点。

提前谢谢..

3 个答案:

答案 0 :(得分:4)

使用CakePHP 2.3.x我只是在数据库配置中使用空字符串作为数据源,它可以正常工作。

数据库配置( app / Config / database.php )几乎为空,如下所示:

class DATABASE_CONFIG {
    public $default = array(
        'datasource' => '',
    );
}

你必须告诉你的AppModel不要使用数据库表,否则你会收到一个错误:“找不到数据源类”。仅在后代模型中设置$ useTable是不够的。

class AppModel extends Model {
    public $useTable = false;
}

我没有遇到任何问题。

答案 1 :(得分:2)

Cakephp实际上尝试连接到数据库,无论您不使用表 所以使用这个

class MyModel extends AppModel {
    public $useTable = false;
}

这只是一个错误,在cakephp上创建应用程序是小菜一碟。为了在没有数据库的情况下开始开发,您需要执行以下步骤。

  1. 创建假dbo源
  2. 在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;
      }
    }
    
    1. 设置默认连接
    2. 下一步是告诉cakephp默认使用dbo源。转到并更改database.php中的默认连接,使其像这样

      var $default = array(
        'driver' => 'FakeDboSource'
      );
      
      1. 微调模型
      2. 第三步是确保$ useTable = false;包含在每个模型中,因此将其添加到AppModel.php

答案 2 :(得分:0)

您可以在database.php中保留默认数据源设置为空,对于您使用的模型,请指定它不需要DB中的相应表格,如下所示:

class MyModel extends AppModel {
    public $useTable = false;
}