openclerk / db
此包的最新版本(0.1.0)没有可用的许可信息。
简单的PHP数据库管理
0.1.0
2015-01-14 03:04 UTC
Requires
- monolog/monolog: ~1.11
- openclerk/events: ~0.1
Requires (Dev)
- phpunit/phpunit: ~4.4
- soundasleep/component-tests: ~0.1
This package is auto-updated.
Last update: 2024-09-14 09:17:34 UTC
README
Openclerk中用于MySQL数据库管理的库,支持迁移、连接抽象和自动复制切换。
安装
在项目的composer.json
中包含openclerk/db
作为依赖,然后运行composer update
将其安装到项目中
{ "require": { "openclerk/db": "^0.1" } }
使用
使用component-discovery来启用跨所有依赖项的迁移发现。更新您的discovery.json
{ "components": { "migrations": "migrations.json" } }
然后您可以使用每个组件中的migrations.json
定义自己的迁移
{ "my_migration_1": "\\My\\Migration" }
配置您的数据库连接,可选地通过辅助函数db()
(另见openclerk/config项目)
use \Openclerk\Config; function db() { return new \Db\SoloConnection( Config::get("database_name"), Config::get("database_username"), Config::get("database_password") ); }
加载它们,并在运行时可选地安装它们
$logger = new \Monolog\Logger('name'); class AllMigrations extends \Db\Migration { function getParents() { return array(new Db\BaseMigration()) + DiscoveredComponents\Migrations::getAllInstances(); } } $migrations = new AllMigrations(db()); if ($migrations->hasPending(db())) { $migrations->install(db(), $logger); }
迁移可以通过migrations.json
在运行时发现和加载。
您还可以在运行时生成迁移,例如为在运行时发现的每种货币生成一个表。
复制
您还可以定义基于查询类型以及该表是否最近在当前$_SESSION中更新而选择的复制连接
function db() { return new \Db\ReplicatedConnection( Config::get("database_host_master"), Config::get("database_host_slave"), Config::get("database_name"), Config::get("database_username"), Config::get("database_password") ); }
事件
db_prepare_start
,db_prepare_end
,db_prepare_master
,db_prepare_slave
db_execute_start
,db_execute_end
db_fetch_start
,db_fetch_end
db_fetch_all_start
,db_fetch_all_end