bit3 / contao-doctrine-dbal-driver
Contao开源CMS使用的Doctrine DBAL数据库驱动
Requires
- php: >=5.3
- contao-community-alliance/composer-plugin: ~2.0
- contao/core: >=3.2,<3.4-dev
- doctrine/dbal: 2.4.*
Replaces
- dev-contao-3.2 / 3.2.x-dev
- 3.2.2
- 3.2.1
- 3.2.0
- dev-contao-3.1 / 3.1.x-dev
- 3.1.18
- 3.1.17
- 3.1.16
- 3.1.15
- 3.1.14
- 3.1.13
- 3.1.12
- 3.1.11
- 3.1.10
- 3.1.9
- 3.1.8
- 3.1.7
- 3.1.6
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1
- dev-contao-3.0 / 3.0.x-dev
- 3.0.16
- 3.0.15
- 3.0.14
- 3.0.13
- 3.0.12
- 3.0.11
- 3.0.10
- 3.0.9
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0
- dev-contao-2.11 / 2.11.x-dev
- 2.11.11
- 2.11.10
- 2.11.9
- 2.11.8
- 2.11.7
- 2.11.6
- 2.11.5
- 2.11.4
- 2.11.3
- 2.11.2
- 2.11.1
- 2.11
This package is not auto-updated.
Last update: 2022-02-01 12:25:17 UTC
README
要使用此数据库驱动,请在您的 system/config/localconfig.php
中更改驱动。
$GLOBALS['TL_CONFIG']['dbDriver'] = 'DoctrineMySQL';
配置缓存
默认情况下,驱动程序使用数组缓存(相当于contao)。但可以使用 $GLOBALS['TL_CONFIG']['dbCache']
、$GLOBALS['TL_CONFIG']['dbCacheTTL']
和 $GLOBALS['TL_CONFIG']['dbCacheName']
配置缓存。
$GLOBALS['TL_CONFIG']['dbCache']
定义缓存机制,可能的值有
apc | 使用apc缓存 |
---|---|
xcache | 使用xcache缓存 |
memcache://<host>[:<port>] | 在 <host>:<port> 上使用memcache缓存 |
redis://<host>[:<port>] | 在 <host>:<port> 上使用redis缓存 |
redis://<socket> | 在 <socket> 文件上使用redis缓存 |
array | 使用数组缓存 |
false | 禁用缓存 |
$GLOBALS['TL_CONFIG']['dbCacheTTL']
是一个整数值,定义了 存活时间(默认值为后端1秒和前端15秒)。
$GLOBALS['TL_CONFIG']['dbCacheName']
是一个字符串,用于唯一标识缓存条目。如果您有共享缓存(如memcache),这很有用(默认值是 md5(/absolute/path/to/bit3/contao-doctrine-dbal-driver/src/Contao/Doctrine/Driver/MySQL/Statement.php)
)。
前端和后端不同的缓存
您可以在每个缓存配置键中添加 _FE
或 _BE
,以定义前端和后端不同的缓存。例如,$GLOBALS['TL_CONFIG']['dbCache_FE']
定义前端缓存机制,而 $GLOBALS['TL_CONFIG']['dbCacheTTL_BE']
定义后端缓存的存活时间。
访问doctrine dbal连接
如果您已安装 bit3/contao-doctrine-dbal,则应使用依赖注入容器
class MyClass { public function myFunc() { global $container; /** @var \Doctrine\DBAL\Connection $connection */ $connection = $container['doctrine.connection.default']; $connection->query('...'); } }
或者您可以从数据库实例获取连接
class MyClass { public function myFunc() { /** @var \Doctrine\DBAL\Connection $connection */ $connection = Database::getInstance()->getConnection(); } }