2013-05-16 2 views
1

cakephp 2.3에서 만드는 응용 프로그램에서 두 개의 데이터베이스를 사용하고 있습니다.cakephp 2.3에서 두 개의 데이터베이스를 가장 효과적으로 사용하는 방법은 무엇입니까?

$connection = new Mongo('localhost'); 
$db = $connection->compras; 
return $db->anuncios->insert($dados); 

나는이 방법을 사용할 수 있습니다 일반적으로 구성된 MySQL 데이터베이스, 및 다른 데이터베이스되는 NoSQL (MongoDB를) 년 예를 들어이 방법을 사용합니까? 보안에 대해 ... 여러분이 몽고 데이터베이스를 그런 식으로 사용하기 위해 실현 가능한 문제는 무엇입니까?

답변

2

당신은 응용 프로그램의 설치 환경에 사용하려는 데이터베이스 의미/구성/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; 
    } 

로 등 준비 즉

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; 
    } 
    } 
    } 

위의 모든 논리 아래로 '는 응용 프로그램에서 DEVELOPMENT_MODE 변수를 사용했습니다/구성은/database.php 파일이 구성 설정은 밖으로 응용 프로그램을 통해 사용을 위해 사용됩니다.

아래 코드는 Model을 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.... 
    } 
+0

감사합니다. 그런 식으로 작동하도록 응용 프로그램을 변경하겠습니다. –

관련 문제