linkuha / db
DB management assistance classes
1.0beta
2019-11-20 06:20 UTC
Requires
- php: >=5.6.0
- ext-handlersocket: *
- ext-mysqli: *
- ext-pdo: *
- ext-pdo_mysql: *
- lib-pcre: *
Suggests
- linkuha/php-helpers: Helpers contain random_int polyfill for PHP 5.6.
This package is auto-updated.
Last update: 2025-02-20 18:04:03 UTC
README
DB management assistance classes
Install:
composer require linkuha/db:dev-master
Example of usage:
MySQLi with keeping connected instances. As example can show part of object factory with any DI container.
public function __invoke(...)
{
$configDb = $container->get('config')['db'];
$configEnv = $container->get('config')['environment']; // server environment
// ...
return MysqliManager::getInstance(
$configResult['db_user'],
$configResult['db_pass'],
$configResult['db_name'],
$configResult['db_host'],
$configResult['db_port'],
true
);
}
Next you can get this persistent connection with $container->build(MysqliManager::class, ["srv" => SERVER_CONSTANT])
SQL import with PDO. Init migration as example.
use Phinx\Migration\AbstractMigration;
class InitMigration extends AbstractMigration
{
public function up()
{
$sqlFilePath = __DIR__ . "/../init.sql";
$result = PDOSqlFileImporter::tryImport($this->getAdapter()->getConnection(), $sqlFilePath);
if ($result["status"] === "fail") {
throw new \Exception($result["status"] . ": " . $result["details"]);
}
return true;
}
...
HandlerSocket usage for fast writing (InnoDB as NoSQL).
$handlerSocket = HandlerSocketMySql::getInstance($configResult['db_host'], $configResult['db_name']);
$cols = "msg,url,ua,date";
$vals = array($msg, $url, $ua, $date);
$handlerSocket->insert("JsErrorsLog", $cols, $vals);