此包的最新版本(0.1.0)没有可用的许可信息。

简单的PHP数据库管理

0.1.0 2015-01-14 03:04 UTC

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_startdb_prepare_enddb_prepare_masterdb_prepare_slave
  • db_execute_startdb_execute_end
  • db_fetch_startdb_fetch_end
  • db_fetch_all_startdb_fetch_all_end