在 CakePHP 3 中创建一个单独的数据库配置文件
create a separate database config file in CakePHP 3
我正在使用 CakePHP 3.4
config/app.php
中存在默认数据库设置
我想在 app.php 之外分离或覆盖数据库配置,在 config/my_db.php
中说并将其加载到 bootstrap.php
文件中。
此设置现在将覆盖 app.php
文件中存在的默认数据库设置。
有什么方法可以做到这一点吗?
Edit 2
config/my.db.php 文件
<?php
return [
'my_db' => [
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
'username' => 'root',
'password' => 'my_pass',
'database' => 'testdb',
'encoding' => 'utf8',
'timezone' => 'UTC',
'flags' => [],
'cacheMetadata' => true,
'log' => false,
]
]
]
];
正在加载 bootstrap.php
Configure::load('my_db', 'default', false);
复制您的 app.php
,将其命名为 app_override.php
并更改您的数据库设置。
然后像这样调整你的bootstrap.php
try {
Configure::config('default', new PhpConfig());
Configure::load('app', 'default', false);
} catch (\Exception $e) {
exit($e->getMessage() . "\n");
}
Configure::load('app_override', 'default');
- 在文件夹 config/
中创建 新文件
- 随意命名:my_db.php
- 添加您的代码配置代码:
return[
'my_db' => [
'setting_1' => 'value_1',
'setting_2' => 'value_2',
'setting_3' => 'value_3',
],
];
现在你必须加载它。 打开文件 config/bootstrap.php,
定位线:
Configure::load('app', 'default', false);
并在下方添加此行:
配置::加载('my_db', 'default');
试试这个::
config/bootstrap.php
Configure::load('my_app', 'default','false');
config/my_app.php
<?php
return [
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
'username' => 'root',
'password' => 'my_pass',
'database' => 'my_db',
'encoding' => 'utf8',
'timezone' => 'UTC',
'flags' => [],
'cacheMetadata' => true,
'log' => false,
]
]
];
我正在使用 CakePHP 3.4
config/app.php
我想在 app.php 之外分离或覆盖数据库配置,在 config/my_db.php
中说并将其加载到 bootstrap.php
文件中。
此设置现在将覆盖 app.php
文件中存在的默认数据库设置。
有什么方法可以做到这一点吗?
Edit 2
config/my.db.php 文件
<?php
return [
'my_db' => [
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
'username' => 'root',
'password' => 'my_pass',
'database' => 'testdb',
'encoding' => 'utf8',
'timezone' => 'UTC',
'flags' => [],
'cacheMetadata' => true,
'log' => false,
]
]
]
];
正在加载 bootstrap.php
Configure::load('my_db', 'default', false);
复制您的 app.php
,将其命名为 app_override.php
并更改您的数据库设置。
然后像这样调整你的bootstrap.php
try {
Configure::config('default', new PhpConfig());
Configure::load('app', 'default', false);
} catch (\Exception $e) {
exit($e->getMessage() . "\n");
}
Configure::load('app_override', 'default');
- 在文件夹 config/ 中创建 新文件
- 随意命名:my_db.php
- 添加您的代码配置代码:
return[
'my_db' => [
'setting_1' => 'value_1',
'setting_2' => 'value_2',
'setting_3' => 'value_3',
],
];
现在你必须加载它。 打开文件 config/bootstrap.php, 定位线:
Configure::load('app', 'default', false);
并在下方添加此行:
配置::加载('my_db', 'default');
试试这个::
config/bootstrap.php
Configure::load('my_app', 'default','false');
config/my_app.php
<?php
return [
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
'username' => 'root',
'password' => 'my_pass',
'database' => 'my_db',
'encoding' => 'utf8',
'timezone' => 'UTC',
'flags' => [],
'cacheMetadata' => true,
'log' => false,
]
]
];