/**
* @var IManageConfigValues
*/
- protected $config;
+ protected $config = null;
/**
* @var Profiler
*/
- protected $profiler;
+ protected $profiler = null;
/**
* @var LoggerInterface
*/
- protected $logger;
+ protected $logger = null;
protected $server_info = '';
/** @var PDO|mysqli */
protected $connection;
/** @var ViewDefinition */
protected $viewDefinition;
- public function __construct(IManageConfigValues $config, Profiler $profiler, DbaDefinition $dbaDefinition, ViewDefinition $viewDefinition)
+ public function __construct(IManageConfigValues $config, DbaDefinition $dbaDefinition, ViewDefinition $viewDefinition)
{
// We are storing these values for being able to perform a reconnect
- $this->config = $config;
- $this->profiler = $profiler;
+ $this->config = $config;
$this->dbaDefinition = $dbaDefinition;
$this->viewDefinition = $viewDefinition;
- // Temporary NullLogger until we can fetch the logger class from the config
+ // Use dummy values - necessary for the first factory call of the logger itself
$this->logger = new NullLogger();
+ $this->profiler = new Profiler($config);
$this->connect();
}
+ /**
+ * @param IManageConfigValues $config
+ * @param Profiler $profiler
+ * @param LoggerInterface $logger
+ *
+ * @return void
+ *
+ * @todo Make this method obsolet - use a clean pattern instead ...
+ */
+ public function setDependency(IManageConfigValues $config, Profiler $profiler, LoggerInterface $logger)
+ {
+ $this->logger = $logger;
+ $this->profiler = $profiler;
+ $this->config = $config;
+ }
+
/**
* Tries to connect to database
*
$this->testmode = $test;
}
- /**
- * Sets the logger for DBA
- *
- * @note this is necessary because if we want to load the logger configuration
- * from the DB, but there's an error, we would print out an exception.
- * So the logger gets updated after the logger configuration can be retrieved
- * from the database
- *
- * @param LoggerInterface $logger
- */
- public function setLogger(LoggerInterface $logger)
- {
- $this->logger = $logger;
- }
-
/**
* Sets the profiler for DBA
*
*
* @param string $sql SQL statement
*
- * @return boolean Was the query successfull? False is returned only if an error occurred
+ * @return boolean Was the query successful? False is returned only if an error occurred
* @throws \Exception
*/
public function e(string $sql): bool
* @param array|boolean $old_fields array with the old field values that are about to be replaced (true = update on duplicate, false = don't update identical fields)
* @param array $params Parameters: "ignore" If set to "true" then the update is done with the ignore parameter
*
- * @return boolean was the update successfull?
+ * @return boolean was the update successful?
* @throws \Exception
* @todo Implement "bool $update_on_duplicate" to avoid mixed type for $old_fields
*/