Joywork/api/v2/app/src/dependencies.php

106 lines
2.8 KiB
PHP
Raw Normal View History

2026-05-22 20:21:54 +02:00
<?php
global $app;
// PDO connection
$app->container->set('pdo', function() use ($app) {
$settings = $app->config('db');
$host = trim($settings['host']);
$db = trim($settings['dbname']);
$pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", trim($settings['user']), trim($settings['pass']), [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
]);
return $pdo;
});
// PDO connection (PDO-driver)
$app->container->set('mypdo', function() use ($app) {
$settings = $app->config('db');
if (!$pdo = new MysqlPdo(trim($settings['host']), trim($settings['dbname']), trim($settings['user']), trim($settings['pass']), false))
die("No connect database...");
$pdo->query("SET NAMES 'utf8mb4'");
return $pdo;
});
// PostgreSQL connection
$app->container->set('pgsql', function() use ($app) {
$settings = $app->config('pgsql');
$host = trim($settings['host']);
$db = trim($settings['dbname']);
$pdo = null;
try {
$pdo = new PDO("pgsql:host=$host;dbname=$db;port=5432;", trim($settings['user']), trim($settings['pass']), [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
]);
} catch (\Throwable $th) {
var_dump('$th');die;
}
return $pdo;
});
// MySQL connection
$app->container->set('mysql', function() use ($app) {
$settings = $app->config('db');
if (!$mdb = mysql_connect($settings['host'], $settings['user'], $settings['pass']))
die("No connect database...");
if (!mysql_select_db($settings['dbname'], $mdb))
die("No selected database...");
$sql = "SET NAMES 'utf8mb4'";
mysql_query($sql, $mdb);
return $mdb;
});
// Sphinx connection #1 (Global Search part)
$app->container->set('sphinx', function() use ($app) {
$settings = $app->config('db');
if (!$sphinx = new MysqlPdo($settings['host_sphinx'], null, null, null, true, '9306'))
die("No connect database...");
$sphinx->query("SET NAMES 'utf8mb4'");
return $sphinx;
});
// Sphinx connection #2 (My objects, Agency objects etc.)
$app->container->set('sphinx2', function() use ($app) {
$settings = $app->config('db');
if (!$sphinx = new MysqlPdo($settings['host_sphinx2'], null, null, null, true, '9306'))
die("No connect database...");
$sphinx->query("SET NAMES 'utf8mb4'");
return $sphinx;
});
// FTP connection
$app->container->set('ftp', function() use ($app) {
$conn = null;
$settings = $app->config('ftp');
if ($conn = ftp_connect($settings['host']))
die("No FTP connection...");
if (!ftp_login($conn, $settings['user'], $settings['pass']))
die("No FTP login failed...");
return $conn;
});