Cakephp PHP WEB開発

【Cakephp2→4】デフォルトとは違うデータベースに切り替える方法

※本サイトはPR表記を含みます。

デフォルトとは違うデータベースに切り替えて接続したいときのCake2とCake4の両方の書き方を見てみます。

前提として、config ファイルに接続したいデータベース接続情報が存在するものとしています。

Cake2: データベース切り替え

Cakephp2では app/Config/database.php にDB接続設定が必要です。

class Hoge extends AppModel {
    public $useDbConfig = 'fuga_db';
}

Cakephp2では $useDbConfig という名前のメンバ変数に別の接続名を指定することで切り替えることができました。

Cake4: データベース切り替え

Cakephp4では config/app_local.php にてDB接続設定が必要です。

<?php
declare(strict_types=1);

namespace App\Model\Table;

use Cake\Datasource\ConnectionManager;
use Cake\ORM\Table;

class HogesTable extends Table
{
    /**
     * 初期化
     *
     * @param array $config
     * @return void
     */
    public function initialize(array $config): void
   {
        parent::initialize($config);

        $this->setConnection(ConnectionManager::get('fugasDb'));
    }
}

Cakephp4では config ファイルの Datasources に定義したDB接続先名を指定することでデータベースの切り替えが可能になります。

-Cakephp, PHP, WEB開発
-