Compare commits

...

3 Commits
1.2.1 ... 1.2.2

4 changed files with 38 additions and 7 deletions

BIN
.gitattributes vendored Normal file

Binary file not shown.

View File

@ -15,7 +15,10 @@ use Doctrine\DBAL\Configuration;
*/
class OxidEsalesDatabase extends \OxidEsales\Eshop\Core\Database\Adapter\Doctrine\Database
{
public static function enableLogger($message = null)
/**
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException
*/
public function d3EnableLogger($message)
{
$trace = debug_backtrace((PHP_VERSION_ID < 50306) ? 2 : DEBUG_BACKTRACE_IGNORE_ARGS);
@ -33,17 +36,20 @@ class OxidEsalesDatabase extends \OxidEsales\Eshop\Core\Database\Adapter\Doctrin
}
/**
* @return OxidSQLLogger
* @return mixed
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException
*/
public static function getLogger()
public function d3GetLogger()
{
$database = \OxidEsales\Eshop\Core\DatabaseProvider::getDb(\OxidEsales\Eshop\Core\DatabaseProvider::FETCH_MODE_ASSOC);
$dbalConfig = $database->getConnection()->getConfiguration();
return $dbalConfig->getSQLLogger();
}
public static function disableLogger()
/**
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException
*/
public function d3DisableLogger()
{
$database = \OxidEsales\Eshop\Core\DatabaseProvider::getDb(\OxidEsales\Eshop\Core\DatabaseProvider::FETCH_MODE_ASSOC);
$dbalConfig = $database->getConnection()->getConfiguration();

View File

@ -7,6 +7,7 @@
namespace D3\OxidSqlLogger;
use D3\ModCfg\Application\Model\d3database;
use Doctrine\DBAL\Logging\SQLLogger;
use Monolog;
use NilPortugues\Sql\QueryFormatter\Formatter;
@ -53,6 +54,8 @@ class OxidSQLLogger implements SQLLogger
$this->stopQuery();
}
$this->getPreparedStatementQuery($sql, $params);
$this->SQLQuery = (new SQLQuery()) ->setSql($sql)
->setParams($params)
->setTypes($types)
@ -62,6 +65,23 @@ class OxidSQLLogger implements SQLLogger
->setLogStartingFunction($this->logStartingFunction);
}
/**
* @param string $sql
* @param array $params
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException
*/
public function getPreparedStatementQuery(&$sql, array $params = null)
{
if (class_exists(d3database::class)
&& method_exists(d3database::class, 'getPreparedStatementQuery')
&& count($params)
&& ($query = d3database::getInstance()->getPreparedStatementQuery($sql, $params))
&& strlen(trim($query))
) {
$sql = $query;
}
}
/**
* @inheritDoc
*/

View File

@ -6,9 +6,14 @@
*/
function D3StartSQLLog($message = null) {
\D3\OxidSqlLogger\OxidEsalesDatabase::enableLogger($message);
/** @var \D3\OxidSqlLogger\OxidEsalesDatabase $database */
$database = oxNew(\D3\OxidSqlLogger\OxidEsalesDatabase::class);
$database->d3EnableLogger($message);
}
function D3StopSQLLog() {
\D3\OxidSqlLogger\OxidEsalesDatabase::disableLogger();
function D3StopSQLLog()
{
/** @var \D3\OxidSqlLogger\OxidEsalesDatabase $database */
$database = oxNew(\D3\OxidSqlLogger\OxidEsalesDatabase::class);
$database->d3DisableLogger();
}