我在 cakephp 2.3 中创建的应用程序中使用了两个数据库。一个mysql数据库,通常配置,另一个数据库nosql(MongoDB),我用这种方式例如:
$connection = new Mongo('localhost');
$db = $connection->compras;
return $db->anuncios->insert($dados);
我可以用这种方式吗?关于安全性...,你们意识到以这种方式使用 mongo 数据库可能会遇到哪些问题?
我在 cakephp 2.3 中创建的应用程序中使用了两个数据库。一个mysql数据库,通常配置,另一个数据库nosql(MongoDB),我用这种方式例如:
$connection = new Mongo('localhost');
$db = $connection->compras;
return $db->anuncios->insert($dados);
我可以用这种方式吗?关于安全性...,你们意识到以这种方式使用 mongo 数据库可能会遇到哪些问题?
您必须在 app/Config/Core.php 文件中设置环境,这意味着您要在哪种模式下使用哪个数据库,即生产、开发、登台等,如下所示
if(env('HTTP_HOST')):
switch (env('HTTP_HOST')) {
case "example.com":
case "www.example.com":
define('DEVELOPMENT_MODE', false); // Suppose you're using production for Mysql databse
break;
case "development.example.com":
define('DEVELOPMENT_MODE', true); // Suppose you're using development for MongoDB
break;
default:
define('DEVELOPMENT_MODE', true);
break;
}
之后,您必须在 app/Config/database.php 文件中使用 DEVELOPMENT_MODE 变量,如下所示
class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'db_username',
'password' => 'db_password',
'database' => 'db_name',
//'prefix' => '',
'encoding' => 'utf8',
);
var $mongo = array(
'datasource' => 'mongodb.mongodbSource',
'persistent' => false,
'host' => 'localhost',
'login' => 'db_username',
'password' => 'db_password',
'database' => 'db_name',
//'prefix' => '',
'encoding' => 'utf8',
);
public function __construct() {
if (DEVELOPMENT_MODE) {
$this->default = $this->mongo;
} else {
$this->default = $this->default;
}
}
}
以上所有逻辑都用于配置设置以在整个应用程序中使用。
现在下面的代码是将模型连接到 mongoDB。
class Test extends AppModel {
var $name = 'test';
var $primaryKey = 'id';
var $useDbConfig = 'mongo'; // setup the mongodb datasource
// Now is model is connected with mongoDB only....
}